php - PHP:将对象转换为以对象属性为键的关联数组
问题描述
在 PHP 中,我想将如下对象数组转换为 PHP 数组,使用其中一个属性作为关联数组键。
[
{ "id": 2, "name": "Suzy" },
{ "id": 3, "name": "Joe" },
{ "id": 4, "name": "Sara" }
]
像这样...
[
2 => "Suzy",
3 => "Joe",
4 => "Sara"
]
我不能使用 array_map 因为你不能根据我的理解设置键,但我想知道是否有一种没有 foreach 循环的单线方法。
需要明确的是,我想维护输出数组中的键,而不是像这里那样将原始键放在新的数组值中:PHP's array_map include keys
解决方案
它出现的“对象”是指 JSON 对象。鉴于此,您可以使用array_column()
从每一行中提取一列,然后array_combine()
将一列用作键,另一列用作值:
$json = '[
{ "id": 2, "name": "Suzy" },
{ "id": 3, "name": "Joe" },
{ "id": 4, "name": "Sara" }
]';
$array = json_decode($json, true);
$out = array_combine(array_column($array, 'id'), array_column($array, 'name'));
print_r($out);
产量:
Array
(
[2] => Suzy
[3] => Joe
[4] => Sara
)
推荐阅读
- python - 如何在标准化图像时阻止我的 Colab 笔记本崩溃?
- python - 在数据框中将选定的列除以 100
- database - 安装后在 AWS 环境中启动 Mongodb
- angular - 未定义已解决的 Angular 标识符“标题”。'Movie[]' 不包含这样的成员
- json - 如何检查对象中的空项并返回空字符串
- python - pygame 图像冲突问题
- node.js - 如何在另一个异步函数中使用异步等待
- amazon-ec2 - 在 Ubuntu 上取消注册 gitlab-runner 不起作用
- c++ - vc++中是否存在编译器错误?(我是初学者)
- php - 我想在php中计算偶数,奇数