gpt4 book ai didi

php array_walk 多维数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:39 24 4
gpt4 key购买 nike

我得到了三个带有某种分层预定义术语的数组

array("fruits", "yellow", "pineapple");
array("fruits", "yellow", "lemon");
array("fruits", "red", "apple");

我有一个具有层次结构的关联数组:

array('fruits'=>array('red'=>array('tomato')));

如何将我的三个数组的项推送到我得到的正确位置:

array('fruits'=>array('yellow'=>array('pineapple','lemon'),'red'=>array('tomato','apple')));

我是否使用 array_walk?还是 array_walk_recursive?我应该使用什么?

最好的,约尔格

最佳答案

您将每个水果转换为嵌套数组,然后使用 array_merge_recursive() 合并.

这是一个工作示例 ( also on Codepad ):

$fruits = array(
array("fruits", "yellow", "pineapple"),
array("fruits", "yellow", "lemon"),
array("fruits", "red", "apple"),
array("fruits", "red", "tomato"),
);

// Convert array to nested array
function nest($leaf)
{
if (count($leaf) > 1)
{
$key = array_shift($leaf);

return array($key => nest($leaf));
}
else
{
return $leaf;
}
}

$tree = array();

foreach($fruits as $fruit)
{
// Convert each fruit to a nested array and merge recursively
$tree = array_merge_recursive($tree, nest($fruit));
}

print_r($tree);

关于php array_walk 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8277664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com