0

是否可以使用一些 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,
)
4

3 回答 3

2

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

假设$originalArray您要转换的数组

$newArray = array();

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

输出结果

var_dump($newArray);
于 2013-04-25T13:09:21.673 回答
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);
于 2013-04-25T13:14:05.860 回答
0

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

于 2013-04-25T13:08:33.890 回答