[英]Implode two-dimensional array in PHP
我有一個像這樣的數組:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
)
[2] => Array
(
[0] => d
[1] => e
[2] => f
)
)
我想將數組轉換為如下所示的字符串:
$arrtostr = 'a,b,c,d,e,f';
我使用了implode()
函數,但它似乎不適用於二維數組。
我該怎么辦?
或者,您可以為此首先使用一個容器,合並內容,最后得到一個扁平的容器,然后使用implode()
:
$letters = array();
foreach ($array as $value) {
$letters = array_merge($letters, $value);
}
echo implode(', ', $letters);
給定您的主題數組:
$subject = array(
array('a', 'b'),
array('c'),
array('d', 'e', 'f'),
);
獲得“展平”數組的兩種簡單方法是:
使用splat運算符的 PHP 5.6.0及更高版本 :
$flat = array_merge(...$subject);
低於PHP 5.6.0,使用call_user_func_array()
:
$flat = call_user_func_array('array_merge', $subject);
這兩個都給出一個數組,如:
$flat = array('a', 'b', 'c', 'd', 'e', 'f');
然后獲取您的字符串,只需內爆:
$string = implode(',', $flat);
您要求一個二維數組,這是一個適用於多維數組的函數。
function implode_r($g, $p) {
return is_array($p) ?
implode($g, array_map(__FUNCTION__, array_fill(0, count($p), $g), $p)) :
$p;
}
我可以像這樣扁平化數組結構:
$multidimensional_array = array(
'This',
array(
'is',
array(
'a',
'test'
),
array(
'for',
'multidimensional',
array(
'array'
)
)
)
);
echo implode_r(',', $multidimensional_array);
結果是:
This,is,a,test,for, multidimensional,array
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.