我有一个多维数组(来自数据库的行集),我想创建一个完全相同的数组,除了键将是数组中的一个项。
例如,如果我有:
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,它只返回列的值。
对此有什么想法吗?还是我只需要自己写函数?
谢谢。
没有现有的函数,因为使用可用的函数原语来实现这个特定的功能是微不足道的。它不够复杂或常见,不足以保证在核心中有自己的专门功能。
array_combine(array_map(function (array $i) { return $i['x']; }, $array), $array)