【问题标题】:how to reach into PHP nested arrays?如何进入 PHP 嵌套数组?
【发布时间】:2012-04-17 10:56:33
【问题描述】:

我有一个嵌套数组,它的 print_r 看起来像这样-

Array
(
    [keyId] => Array
        (
            [hostname] => 192.168.1.127
            [results] => Array
                (
                    [1] => false
                    [2] => false
                    [3] => false
                )

            [sessionIDs] => Array
                (
                    [0] => ed9f79e4-2640-4089-ba0e-79bec15cb25b
                )

        )

我想处理(打印键和值)“结果”数组。我该怎么做?

我正在尝试使用 array_keys 函数首先获取所有键,如果键名是“结果”,则处理数组。但问题是 array_keys 没有进入“结果”

【问题讨论】:

    标签: php arrays nested


    【解决方案1】:

    php 的foreach 循环是您所需要的。

    foreach($arr['keyId']['results'] as $key => $value) {
       //$key contains key and $value contains values.
    }
    

    【讨论】:

      【解决方案2】:

      你想要的数组是$array['keyID']['results']。从那里您可以使用$array['keyID']['results'][1]$array['keyID']['results'][2]$array['keyID']['results'][3] 访问这些值

      要遍历它,只需这样做:

      foreach($array['keyId']['results'] as $key => $value) {
         echo $key . ' ' . $value;
      }
      

      for ($i = 1; $i <= 3; i++)
      {
          echo $i . ' ' . $array['keyID']['results'][i];
      }
      

      【讨论】:

        【解决方案3】:
        foreach($array['keyId']['results'] as $k => $v) {
            // use $k and $v
        }
        

        【讨论】:

          【解决方案4】:

          在数组中导航的一种方法是这样。

          //Assuming, your main array is $array
          foreach($array as $value) { //iterate over each item
          
             if(isset($value['results']) && count($value['results'])) { 
             // ^ check if results is present
          
                 //Now that we know results exists, lets use foreach loop again to get the values
                 foreach($value['result'] as $k => $v) {
                     //The boolean values are now accessible with $v
                 }
             }
          }
          

          【讨论】:

          • 今天 SO 出了什么问题?反对票正在向我开火。没有评论。
          • @Jon,我的意思是 SO 用户,恐怕有人讨厌我。
          • 这太荒谬了。你应该更“害怕”你的答案需要改进:例如,这个根本不实用,也根本没有解释。对我来说,这看起来是个坏主意并且除此之外,OP 可能很难适应其他代码。
          • @Jon,我的回答比你的解释更多。
          • ...这与我们谈论的是超初级 PHP 语法这一事实一起,是我创建我的社区 wiki 的原因。如果我不需要空间来格式化代码,那将是一条评论。在任何情况下,了解如何改进您的答案可能对更有帮助。
          猜你喜欢
          • 2020-06-26
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多