-1

我有一个多维数组(数据库中的一组行),我想创建一个完全相同的数组,除了键是数组中的一项。

例如,如果我有:

array(
[1] => array("x" => "aa", "y" => 12, "z" => "more data...", ...),
[2] => array("x" => "bb", "y" => 13, "z" => "more data...", ...),
[3] => array("x" => "cc", "y" => 14, "z" => "more data...", ...),
[4] => array("x" => "dd", "y" => 15, "z" => "more data...", ...),
[5] => array("x" => "ee", "y" => 16, "z" => "more data...", ...).
...
)

我调用了 reindex(myarray, "x") 之类的东西,它会返回为:

array(
["aa"] => array("x" => "aa", "y" => 12, "z" => "more data...", ...),
["bb"] => array("x" => "bb", "y" => 13, "z" => "more data...", ...),
["cc"] => array("x" => "cc", "y" => 14, "z" => "more data...", ...),
["dd"] => array("x" => "dd", "y" => 15, "z" => "more data...", ...),
["ee"] => array("x" => "ee", "y" => 16, "z" => "more data...", ...).
...
)

我原以为 PHP 提供了类似的东西,但我发现的只是 array_column,它只返回列的值。

对此有什么想法吗?还是我只需要编写自己的函数?

谢谢。

4

1 回答 1

0

没有现有的功能,因为使用可用的功能原语来实现这个特定的功能是微不足道。它不够复杂或不够普遍,不足以保证其核心中的特殊功能。

array_combine(array_map(function (array $i) { return $i['x']; }, $array), $array)
于 2013-05-29T18:21:30.300 回答