gpt4 book ai didi

php - 如何从php中的现有数组创建一个新数组?

转载 作者:行者123 更新时间:2023-12-04 10:34:41 25 4
gpt4 key购买 nike

假设我有一个像下面这样的数组。

$i = array(
'arr1' => array(
'a11' => 'ar11',
'a12' => 'ar12',
),
'arr2' => array(
'a21' => 'ar21',
'a22' => 'ar22',
'a23' => 'ar23',
),
'arr3' => 'arrr3',
'arr4' => 'arrr4'
);

我想要一个从这个数组创建的新数组,就像我在下面提到的那样,
$j = array(
'a11' => 'ar11',
'a12' => 'ar12',
'a21' => 'ar21',
'a22' => 'ar22',
'a23' => 'ar23',
'arr3' => 'arrr3',
'arr4' => 'arrr4'
);

到目前为止,我尝试提取最后两个不是数组的元素,我在下面提到了代码
$ii = $i;
foreach($ii as $k => $v):
if(is_array($v)):
unset($ii[$k]);
endif;
endforeach;

这将返回最后两个元素。但我尝试提取其他元素的方式看起来是有线的,见下文。
$i1 = $i['arr1'];
$i2 = $i['arr2'];
$i3 = array_merge($i1, $i2);
$final = array_merge($i3, $j);

这看起来很简单,因为它的元素很少,但我的项目中有大量元素,还有其他方法可以获得此输出吗?

最佳答案

你能试试这个吗?

$final = [];

foreach($i as $key => $value){
if(is_array($value){
$final = array_merge($final, $value);

} else{
$final[$key] = $value;
}
}

更新。

@Magnus-Eriksson 坚持解释循环内发生的事情。首先我们检查 value 是否是一个数组。如果 value 是一个数组,我们将嵌套数组与我们放置元素的(新的,在循环开始之前创建)数组合并。如果 value 不是数组,我们只需获取该值并将其添加到最终数组中。这里没有魔法。但是回答 array_walk_recursive()下面更优雅,但内有“魔法”。

关于php - 如何从php中的现有数组创建一个新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60237738/

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