我将JSON字符串转换为数组。
它是一个设备列表,每个设备都有名称,状态等,以及名为ref
的唯一引用。
我可以使用
访问数组中的第一个设备echo $json_array_a[Devices][0][ref]
它将返回该设备的正确参考(为11)。
我想更改我的数组以使用ref作为索引,所以我会得到同一设备的名称:
echo $json_array_a[Devices][11][name]
如何做到这一点?
答案 0 :(得分:0)
这应该有效:
function getDeviceName($devices,$index)
{
$ref = $devices[$index]['ref'];
return $devices[$ref]['name'];
}
试一试。哦,你这样用它:
echo getDeviceName($json_array_a['Devices'],0);
调用某些内容$json_array_a
不是一种编程方式。数组的名称应反映其内容,而不是其创建方式。我试图在函数中正确地做到这一点。
答案 1 :(得分:0)
尝试类似的内容:
$new_array = array(Devices => array());
foreach ($json_array_a[Devices] as $value) {
$new_array[Devices][$value[ref]] = $value;
}
现在$new_array
应该包含带索引的数组。
请注意,如果您的任何引用重复,那么只有原始数组中出现的最后一个引用才会出现在新数组中,因为它将覆盖任何先前的值。
另外,你使用ref / name / Devices没有任何引号 - 我在这里保持相同的东西,但我假设那些字符串真的是这样的,因此应该用引号括起来作为'ref'/'name' /'设备'?