首页 > 解决方案 > 如何在 JSON 中使用特定项目的名称来接收来自该项目的其他数据

问题描述

例如,我有这个 JSON 文件:

[{"name":"Name1",
  "value":24,
  "min":10,
  "max":16,
  "rate":108},

  {"name":"Name2",
    "value":69,
    "min":0,
    "max":6,
    "rate":122}
]

我已经使用以下方法将其解码为数组:

$json = json_decode($jsondata, true);

现在我想通过使用它的名称来获取第二个项目的值,例如:

echo $json['Name1']['value'] 

代替

echo $json[0]['value'] 

有什么办法吗?谢谢。

标签: phparraysjson

解决方案


你可以这样试试

<?php
$str = '[{"name":"Name1",
  "value":24,
  "min":10,
  "max":16,
  "rate":108},

  {"name":"Name2",
    "value":69,
    "min":0,
    "max":6,
    "rate":122}
]';

$arr = json_decode($str,true);
$result = $arr[array_search('Name2',array_column($arr,"name"))];
echo "<pre>";
print_r($result);

这是工作代码

array_search - 在数组中搜索给定值,如果成功则返回第一个对应的键
array_column - 从输入数组中的单个列返回值


推荐阅读