在php中使用2个不同的数组创建一个新数组
我有两个这样的数组。阵列1:在php中使用2个不同的数组创建一个新数组,php,arrays,wordpress,array-merge,array-map,Php,Arrays,Wordpress,Array Merge,Array Map,我有两个这样的数组。阵列1: Array ( [abu-garcia] => 1 [daiwa] => 4 [shimano] => 4 ) Array 2: Array ( [0] => Array ( [brand_id] => 36 [brand_name] => Abu Garcia [brand_slug] => abu-ga
Array
(
[abu-garcia] => 1
[daiwa] => 4
[shimano] => 4
)
Array 2:
Array
(
[0] => Array
(
[brand_id] => 36
[brand_name] => Abu Garcia
[brand_slug] => abu-garcia
)
[1] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
)
[2] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
)
[3] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
)
[4] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
)
[5] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
)
[6] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
)
[7] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
)
我想创建一个新数组,它应该如下所示:
Array
(
[0] => Array
(
[brand_id] => 36
[brand_name] => Abu Garcia
[brand_slug] => abu-garcia
[count] => 1
)
[1] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[2] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[3] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[4] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[5] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
[count] => 4
)
[6] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
[count] => 4
)
[7] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
[count] => 4
)
$i = 0;
foreach($DataArray as $ItemArray){
foreach($ItemArray as $Key=>$Value){
$NewArray[$i][$Key] = $Value;
$NewArray[$i]['count'] = 0;
if(isset($CountArray[$ItemArray['brand_slug']])){
$NewArray[$i]['count'] = $CountArray[$ItemArray['brand_slug']];
}
}
ksort($NewArray[$i]);
$i++;
}
print_r($NewArray);
这两个数组都是由wordpress创建的。array1是一个函数的输出,用于检查品牌cat中的产品数量,而其他数组提供品牌详细信息。
谢谢我想我明白你想做什么了 如果以下是阵列的示例:
$CountArray = array("abu-garcia"=>1,
"daiwa"=>4,
"shimano"=>4);
$DataArray = array(
array("brand_id"=>36, "brand_name"=>"Abu Garcia", "brand_slug"=>"abu-garcia"),
array("brand_id"=>41, "brand_name"=>"Daiwa", "brand_slug"=>"daiwa"),
array("brand_id"=>39, "brand_name"=>"Shimano", "brand_slug"=>"shimano")
);
然后循环第二个数组以构建新数组,并从第一个数组中添加count键,如下所示:
Array
(
[0] => Array
(
[brand_id] => 36
[brand_name] => Abu Garcia
[brand_slug] => abu-garcia
[count] => 1
)
[1] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[2] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[3] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[4] => Array
(
[brand_id] => 41
[brand_name] => Daiwa
[brand_slug] => daiwa
[count] => 4
)
[5] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
[count] => 4
)
[6] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
[count] => 4
)
[7] => Array
(
[brand_id] => 39
[brand_name] => Shimano
[brand_slug] => shimano
[count] => 4
)
$i = 0;
foreach($DataArray as $ItemArray){
foreach($ItemArray as $Key=>$Value){
$NewArray[$i][$Key] = $Value;
$NewArray[$i]['count'] = 0;
if(isset($CountArray[$ItemArray['brand_slug']])){
$NewArray[$i]['count'] = $CountArray[$ItemArray['brand_slug']];
}
}
ksort($NewArray[$i]);
$i++;
}
print_r($NewArray);
用最简单的方法,你可以这样做。 假设您的第一个数组名为$first\U array,第二个数组名为$second\U array 只需像这样循环第二个
foreach($second_array as $index => $item)
{
$second_array[$index]['count'] = $first_array[$item['brand_slug']];
}
echo "<pre>";
print_r($second_array);
数组合并
将一个或多个数组的元素合并在一起,以便将其中一个数组的值追加到前一个数组的末尾。它返回结果数组
示例数组\合并示例
你试过了吗?是的,那就是我要找的。感谢@justbaronFeel接受答案,如果有帮助,请投票