代码之家  ›  专栏  ›  技术社区  ›  Podarce

使用array_键访问嵌套关联数组(PHP)

  •  0
  • Podarce  · 技术社区  · 7 年前

    我正在尝试访问嵌套的关联数组:

    $data = array('1'=>'value1','2'=>'value2','3'=>array('one','two'))
    

    键“3”的值是一个数组。

    因为我需要循环我的值,所以我提取了给定数组的键:

    $keys = array_keys($data);
    

    并用于获取与以下项相关的值:

    foreach(range(1, 10) as $val):
     echo "key: ".$keys[$val]; 
     echo "value: ".$data[$keys[$val]]; 
    endforeach;
    

    现在我想访问与“3”相关的值。 使用 $data[$keys[$val]] 不起作用,因为我得到的是一个数组,而不是一个值。

    我的问题是:例如,如何使用接近的语法访问值“one” $data[$keys[$val]] ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ofir Baruch    7 年前

    您应该添加一个条件来检查值是字符串还是数组。 如果它是一个字符串-只需回显它,否则-访问该数组中的第一个值(key=0,将打印“one”),或使用另一个foreach循环访问所有这些数组的值。

    foreach(range(1, 10) as $val):
     echo "key: ".$keys[$val]; 
     echo "value: ";
     if(is_array($data[$keys[$val]])){ //Is it an array?
    
      //echo 'one'
      echo $data[$keys[$val]][0];
    
      //or all the values with a loop
      foreach($data[$keys[$val]] as $val2){
       echo $val2;
       echo ",";
      }
    
    
     } else { //it's not an array, we can simply echo it.
      echo $data[$keys[$val]];
     }
    endforeach;