将2元素数组的数组转换为数组,将2个元素作为键=>值

时间:2013-04-25 13:02:32

标签: php arrays

是否可以使用一些PHP内置函数将以下数组转换为包含id值作为键并且label的值作为关联值的数组?如果没有什么是有效的方式?

感谢。

输入数组:

Array
(
    [0] => Array
        (
            [id] => 2
            [label] => MTD-589
        )

    [1] => Array
        (
            [id] => 3
            [label] => MTD-789
        )

)

输出数组:

Array
(
  [2] => MTD-589,
  [3] => MTD-789,
)

3 个答案:

答案 0 :(得分:2)

我不知道任何内置函数,但我会这样做:

假设$originalArray为您要转换的数组

$newArray = array();

foreach ($originalArray as $element)
     $newArray[$element["id"]] = $element["label"];

输出结果

var_dump($newArray);

答案 1 :(得分:1)

介绍array_column(仍在PHP 5.5 Beta中)。

$new_array = array_column($your_array 'label', 'id');

<强>输出

Array
(
  [2] => MTD-589,
  [3] => MTD-789,
)

使用array_walk

array_walk($array, function($a) use (&$return) { $return[$a['id']] = $a['label']; });
print_r($return);

答案 2 :(得分:0)

如果您可以使一个数组包含您的ID并且一个数组包含您的标签,则可以使用array_combine将两者合并为键/值http://php.net/manual/en/function.array-combine.php