PHP,如何轻松地将索引数组转换为关联数组

标签 php arrays

<分区>

什么是最简单的转换方式

$a = array(
    array("id" => 1, "name" => "a1"),
    array("id" => 2, "name" => "a2")
);

$b = array(
    "a1" => array("id" => 1, "name" => "a1"),
    "a2" => array("id" => 2, "name" => "a2")
);

我期待 PHP 有一些函数式编程工具来做类似的事情:

$b = map($a, function($item) {
    return $item["name"];
});

但是我没有找到。

最佳答案

您可以使用 PHP array_column() 函数。对于您的用例,第二个参数应为 null 以返回完整数组。

$a = array(
array("id" => 1, "name" => "a1"),
array("id" => 2, "name" => "a2")
);

$b = array_column($a, null, 'name');

print_r($b) 将产生

Array
(
[a1] => Array
    (
        [id] => 1
        [name] => a1
    )

[a2] => Array
    (
        [id] => 2
        [name] => a2
    )

)

关于PHP,如何轻松地将索引数组转换为关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42650861/

相关文章:

c++ - 在两个函数 C++ 之间发送一个数组

php - Symfony2 FOSRestBundle handleView() 不起作用

php - Wordpress 分类邮箱

c++ - 使用 [] 运算符时为 "binding reference of type discards qualifiers"

C - 将 char 或 int 转换为二进制字符串并附加到 char 数组

php - 在php中的for循环中将元素推送到数组

c - 从两个数组中输出不同的元素

php - 如何优化完全缓存的 WordPress 站点的 SQL 设置

php - 如何在 slim3 php 中将文件上传到另一台服务器

php - 使用 php 更改密码