通过较大的多维数组在php中创建关联数组

时间:2018-10-21 23:30:09

标签: php arrays

我无法从大型数组中提取某些信息并将其放置在较小的数组中,我拥有的大型数组如下;

Array
(
    [0] => Array
        (
            [BlanketBrand] => Array
                (
                    [BlanketBrandID] => 125
                    [BlanketBrandName] => Neptune
                    [BlanketBrandActive] => Y
                )

        )

    [1] => Array
        (
            [BlanketBrand] => Array
                (
                    [BlanketBrandID] => 126
                    [BlanketBrandName] => King Size
                    [BlanketBrandActive] => Y
                )

        )

)

我想从中创建一个数组,其中仅BlanketBrandID作为键,而BlanketBrandName作为值

array(
    125 => Neptune,
    126 => King Size
)

这样的事情让我更容易使用。

任何帮助都会很棒。

谢谢

1 个答案:

答案 0 :(得分:1)

这可以在非常简单的foreach循环中完成:

<?php

$array = [
    [
        'BlanketBrand' => [
            'BlanketBrandID' => 125,
            'BlanketBrandName' => 'Neptune',
            'BlanketBrandActive' => 'Y'
        ]
    ],
    [
        'BlanketBrand' => [
            'BlanketBrandID' => 126,
            'BlanketBrandName' => 'King Size',
            'BlanketBrandActive' => 'Y'
        ]
    ]
];

$new_array = [];

foreach ($array as $item) {
    $new_array[ $item['BlanketBrand']['BlanketBrandID'] ] = $item['BlanketBrand']['BlanketBrandName'];
}

print_r($new_array);

请参见示例here

您也可以使用array_reduce()完成此操作:

$new_array = array_reduce($array, function($a, $b) {
    $a[ $b['BlanketBrand']['BlanketBrandID'] ] = $b['BlanketBrand']['BlanketBrandName'];

    return $a;
}, []);

请参见示例here