在php中使用2个不同的数组创建一个新数组

在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

我有两个这样的数组。阵列1:

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接受答案,如果有帮助,请投票