我想在下面嵌套這個多維多維數組,而不使用任何循環。獲取來自多個多維數組的所有值
我想在這裏,對關聯或多維數組的作品,但不能把它們放在一起在一個良好的使用來解決我的問題了一些很好的例子:
Array
(
[0] => Array
(
[level2_1] => aa
[level2_2] => bb
[level2_3] => cc
[level2_4] => Array
(
[level3_1] => DDD
[level3_2] => EEE
)
)
[1] => Array
(
[level2_1] => ff
[level2_2] => gg
[level2_3] => hh
[level2_4] => Array
(
[level3_1] => III
[level3_2] => JJJ
)
)
)
預期輸出:
0 -> level2_1: aa, level2_2: bb, level2_3: cc, level3_1: DDD, level3_2: EEE
1 -> level2_1: ff, level2_2: gg, level2_3: hh, level3_1: III, level3_2: JJJ
或至少:
0: aa, bb, cc, DDD, EEE
1: ff, gg, hh, III, JJJ
我試過很多非循環回答關於implode,多維等 我認爲他們需要一些修改,如果其中一個元素(level2_4)是數組而不是字符串,它的元素變平。
下面是代碼,我發現工作的一些很好的樣本,但需要修改,以適應我的情況:
#基本的,但停在一個子陣列:
回聲破滅(」 ,',call_user_func_array('array_merge',$ data));
#PHP破滅關聯數組:
破滅( '',array_map(函數($ K,$ V){返回 「$ K:$ V」;},array_keys($數據), array_values($數據)));
#PHP破滅多維數組:
$導致[0] [代碼] = 「123」;
$ result [0] [desc] =「Desc123」;
$ result [1] [code] =「567」;
$ result [1] [desc] =「Desc567」; (',',array_map(function($ k,$ v){return「$ k:$ v」;},array_keys(array_column($ result,'desc','code')), array_values(array_column($ result,'desc','code'))));
如何'$海峽= ''; array_walk_recursive($ x,function($ v,$ k)use(&$ str){$ str。= $ k。':'。$ v。',';});',其中'$ x'是你的數組。可能需要一些修剪,但看起來很接近。 – jh1711
@ jh1711 **非常接近!**爲什麼不在第1級數組([0],[1],[2],...)上組成新行0 - >,1->併發布答案? – Tarik
不需要有幾乎相同的競爭答案。 Roman解決了尾隨逗號,並獲取了$ key - > $ value格式。這就是爲什麼我投他的答案。對於新行:請參閱我對他的回答的評論。 – jh1711