如何在php上获取多维数组的值

时间:2015-10-07 04:53:18

标签: php arrays json multidimensional-array

嗨我用php建立一个使用json api的网站,我需要回显一个多维数组的值

 "troopsLevels": [
{
  "value": 5,
  "globalID": 4000000
},
{
  "value": 5,
  "globalID": 4000001
},
{
  "value": 4,
  "globalID": 4000002
},

这是我的json文件的一个示例我需要的是显示值“值”知道取决于globalID

但不确定该怎么做

我在想像

      $troop_lvl = $data['troopsLevels'];

if($troop_lvl['globalID'] == 4000000){echo $troop_lvl['value']}

但是诅咒这不起作用,因为我没有指定项目[0] .. [2]

但实际上这就是我需要避免使用[0]来选择特定数组我需要读取所有内容并且仅在我给出globalid时显示['value']

我真的希望你能理解我英语不是我的母语 非常感谢你的帮助

4 个答案:

答案 0 :(得分:1)

使用foreach

foreach ($troop_lvl as $key=>$value) {
  if($value['globalID'] == 4000000) {
    echo $troop_lvl['value'];
  }
}

答案 1 :(得分:1)

您需要使用foreach循环

foreach ($troop_lvl as $key=>$value) {
  if($value['globalID'] == 4000000) {
    echo $value['value'];
  }
}

答案 2 :(得分:1)

见下文:

<?php
    $arr = array("test" => array("value" => 1, "value2" => 2), "test2" => array("value" => 21, "value2" => 22));
    $encode_arr = json_encode($arr);
    $decode_arr = json_decode($encode_arr);
    //print_r($decode_arr);
    foreach ($decode_arr as $key => $value) {
         if($value->value2==2)
            echo $value->value;
    }
?>

输出为1

答案 3 :(得分:1)

这应该对你有用,

  $a = '{"troopsLevels": [
            {
               "value": 5,
               "globalID": 4000000
            },
            {
                 "value": 5,
                 "globalID": 4000001
             },
             {
                 "value": 4,
                 "globalID": 4000002
             }
         ]}';

  $abc = json_decode($a);
    foreach ($abc->troopsLevels as $row) {
        if ($row->globalID == 4000000) {
            echo $row->value;// prints value as 5 for the current input.
        }
    }