我想在下面嵌套这个多维多维数组,而不使用任何循环。获取来自多个多维数组的所有值
我想在这里,对关联或多维数组的作品,但不能把它们放在一起在一个良好的使用来解决我的问题了一些很好的例子:
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