如何将多维php数组转换为值为键的简单关联数组?

时间:2017-03-20 19:27:39

标签: php arrays multidimensional-array

语言 PHP

所以我想把一个多维数组转换成一个简单的关联数组,它使用每一个值作为键,每三个值作为该键的一个值。

初始数组如下所示:

Array
(
[0] => Array
    (
        [id] => 1
        [name] => Adam
        [value] => 150
    ),

[1] => Array
    (
        [id] => 2
        [name] => Bob
        [value] => 120
    ),

[2] => Array
    (
        [id] => 3
        [name] => Charlie
        [value] => 175
    )

)

我想将它变成一个简单的关联数组,如下所示:

Array
(
Adam => 150,
Bob => 120,
Charlie => 175
)

我试过(并且失败了)这样的事情:

$initialArray;
$arrayPrepped = array();
    foreach ($initialArray as $part) {
        foreach ($part as $name => $value) {
            if ($name == 'name') {
                $key = $value;
            } elseif ($name == 'value') {
                $finalvalue = $value;
            }
            $finalpart = array($key => $finalvalue);
        }
        array_merge($initialArray, $finalpart);
    }

3 个答案:

答案 0 :(得分:5)

这个单线程怎么样!

print_r(array_column($initialArray, 'value', 'name'));

阅读array_column

答案 1 :(得分:1)

您的原始值如下:

$a = Array
(
    Array(
        'id' => 1,
        'name' => 'Adam',
        'value' => 150
    ),
    Array
    (
        'id' => 1,
        'name' => 'Job',
        'value' => 200
    ),

);

然后继续工作:

$myarr = [];
foreach ($a as $item) {
    $myarr[$item['name']] = $item['value'];
}
echo "<pre>";
print_r($myarr);

<强>输出:

Array
(
    [Adam] => 150
    [Job] => 200
)

答案 2 :(得分:0)

您可以通过这种方式将数组和设置值传递到新数组中。

$initialArray = [
    0 => [
        'id'    => 1,
        'name'  => 'Adam',
        'value' => 150,
    ],

    1 => [
        'id'    => 2,
        'name'  => 'Bob',
        'value' => 120,
    ],

    2 => [
        'id'    => 3,
        'name'  => 'Charlie',
        'value' => 175,
    ],
];
$arrayPrepped = array();
foreach ($initialArray as $part) {
    $arrayPrepped[$part['name']] = $part['value'];
}

Here is执行的例子