通过索引索引PHP多级数组

时间:2013-05-29 17:37:32

标签: php arrays

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

例如,如果我有:

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,它只返回列的值。

有关于此的任何想法吗?或者我只需要编写自己的函数?

感谢。

1 个答案:

答案 0 :(得分:0)

没有现有功能,因为使用 可用的功能原语实现此特定功能是微不足道的。在核心中保证自己的专业功能并不复杂或普遍。

array_combine(array_map(function (array $i) { return $i['x']; }, $array), $array)