配列/リストの中身を一度にすべて表示する PHP, Python
- PHPを用いて次のようなコードで配列をループ処理せずに一度に全て表示する方法を調べてみました。
- PHP: implode()を用いると意図している感じに表示できます。
- PHP: vprintf()を用いても意図している感じに表示できるようです。
- Python: *でリストをアンパックしてprintに渡すと意図しているように表示できます。
PHPを用いて次のようなコードで配列をループ処理せずに一度に全て表示する方法を調べてみました。
<?php $chars = preg_split('//u', '配列の中身', -1, PREG_SPLIT_NO_EMPTY); foreach ($chars as $char) { echo $char, '<br>', PHP_EOL; } /* 配<br> 列<br> の<br> 中<br> 身<br> */
PHP: implode()
を用いると意図している感じに表示できます。
<?php $eol = '<br>' . PHP_EOL; $chars = preg_split('//u', '配列の中身', -1, PREG_SPLIT_NO_EMPTY); echo implode($eol, $chars), $eol; /* 配<br> 列<br> の<br> 中<br> 身<br> */
PHP: vprintf()
を用いても意図している感じに表示できるようです。
<?php $eol = '<br>' . PHP_EOL; $chars = preg_split('//u', '配列の中身', -1, PREG_SPLIT_NO_EMPTY); vprintf(str_repeat('%s' . $eol, count($chars)), $chars); /* 配<br> 列<br> の<br> 中<br> 身<br> */
vprintf()
の第1引数に用いるフォーマット%s<br>PHP_EOL
を配列$chars
と同じ数count($chars)
だけstr_repeat()
で用意しています。
print_r()
を使えば表示は行えますが、意図する形には行えません。
<?php $chars = preg_split('//u', '配列の中身', -1, PREG_SPLIT_NO_EMPTY); print_r($chars); /* Array ( [0] => 配 [1] => 列 [2] => の [3] => 中 [4] => 身 ) */
Python: *
でリストをアンパックしてprintに渡すと意図しているように表示できます。
# -*- coding: utf-8 -*- from __future__ import print_function eol = '<br>\n' chars = list(u'配列の中身') print(*chars, sep=eol, end=eol) ''' 配<br> 列<br> の<br> 中<br> 身<br> '''
- sepで区切り文字を
<br>\n
に変えています。
身
より前に表示されている<br>\n
です。 - endで文末の文字を
<br>\n
に変えています。
身
の後に表示されている<br>\n
です。
*
を付け忘れるとリストのまま表示されてしまいます。
*chars
のように*
を付ける事でリストがアンパックされるのでchars
のまま渡してしまうと意図しているようにはならないので注意が必要です。
- Python 2.7
[u'\u914d', u'\u5217', u'\u306e', u'\u4e2d', u'\u8eab']<br>
- Python 3.5
['配', '列', 'の', '中', '身']<br>