使用数组中的值作为索引

时间:2014-09-27 10:27:55

标签: php arrays json

我将JSON字符串转换为数组。

它是一个设备列表,每个设备都有名称,状态等,以及名为ref的唯一引用。

我可以使用

访问数组中的第一个设备
echo $json_array_a[Devices][0][ref]

它将返回该设备的正确参考(为11)。

我想更改我的数组以使用ref作为索引,所以我会得到同一设备的名称:

echo $json_array_a[Devices][11][name]

如何做到这一点?

2 个答案:

答案 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' /'设备'?