假設我有一個數組。在PHP中將一個連接前置到一個內爆陣列的最後的方法是什麼?
$shopping_list = array('eggs', 'butter', 'milk', 'cereal');
什麼是顯示這是一個逗號分隔的列表,並在前面加上一個詞(連詞,介詞等)的最後一個值的最簡單的和/或最聰明的辦法?期望的結果包括:
'eggs, butter, milk, and cereal'
'eggs, butter, milk, or cereal'
'eggs, butter, milk, with cereal'
'eggs, butter, milk, in cereal'
// etc.
該數組將會是可變長度的,可能是關聯的,並且最好不應修改。它也不需要崩潰;我認爲這只是做這種事情的標準方式。數組解引用也很好,但PHP 5.3兼容的東西會很好。
我想沿着
$extra_word = 'and';
implode(', ', array_slice($shopping_list, 0, count($shopping_list) - 1))
. ', ' . $extra_word . ' '
. implode(',', array_slice($shopping_list, count($shopping_list) - 1));
行的東西,但是這是一個謊言。循環更清潔,並且不太適應:
$i = 0;
$output = '';
foreach ($shopping_list as $item) {
$i += 1;
if ($i > 1) {
$output .= ', ';
if ($i === count($shopping_list)) {
$output .= $extra_word . ' ';
}
}
$output .= $item;
}
這兩種方式看起來都很迂迴。想到更好的方法嗎?
這不是做一個標準的事情,你已經提供了兩種解決方案。這不是一個問題。 – markus 2013-05-09 10:40:23
@markus什麼是'那'?字符串操作?我用PHP做我的雜貨店購物清單。它幫助很多:) – danronmoon 2013-05-09 10:42:14
@Voitcus我只是在數組關聯的情況下使用計數器。 – danronmoon 2013-05-09 10:45:12