【问题标题】:How to access elements inside MultiDimensional Array in php如何在php中访问多维数组中的元素
【发布时间】:2013-11-08 05:13:34
【问题描述】:

如何访问多维数组的每个键下的所有元素。

$multi = array
(
    "Abhishek" => array("Choudhary", "Bunta", "Popy"),
    "Bond"     => array("One", "two", "three", "four"),
    "Super"    => array("T1", "T2")
);


$data = array("Abhishek","Bond","Super");           

for($j = 0;$j<count($data);$j++)
{
    echo "<br/>Main Array Value ".$data[$j]."<br/>";

    for($i = 0;$i<count($data[$j]);$i++)
    {
        echo "sub Value ".$multi[$data[$j]][$i]." count ".count($data[$j]) ;
    }
}

现在我想遍历 Abhishek 、 Bond 和 Super 的每个元素,所以我们可以看到 Abhishek 里面有 3 个元素,但 $data[$j] 总是返回 1。如果我递增,那么我可以访问 Bunta 目前的输出是 -

Main Array Value Abhishek
sub Value Bunta
Main Array Value Bond
sub Value two
Main Array Value Super
sub Value T2

预期是:

**

Main Array Value Abhishek
 sub Value choudhary
 sub Value Bunta
 sub Value Popy
:
:
Main Array Value Bond
 sub Value two
Main Array Value Super
 sub Value T2

**

免责声明:我对 PHP 非常陌生,所以我的期望可能无效,或者我错过了一些非常愚蠢的事情。

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    @bunta 请查看:PHP Foreach

    您可以改用 foreach。

    还有:

    PHP foreach loop through multidimensional array

    HTH。

    【讨论】:

    • 这应该是一条评论,因为它没有对问题给出明确的答案
    • @AlmaDoMundo 谢谢,我忘了添加答案的链接。
    • 仅链接的答案在 Stackoverflow 上的价值很低。
    【解决方案2】:

    我建议你阅读一些关于multidim 数组的文章,无论如何你的需求可以通过以下代码来完成:

    foreach($multi as $key => $value) {
        echo "<br/>Main Array Value ".$key."<br/>";
        for($i = 0; $i < sizeof($value); $i++) {
            echo "sub Value ".$value[$i]." count ".sizeof($value) ;
        }
    } 
    

    PS:你不需要$data数组

    【讨论】:

      【解决方案3】:

      您只需要使用 foreach 来迭代 $multi 数组(如果您只想知道每个元素级别 1 的子元素数量):

       <?php
      echo "<br\>multiDimensional Array<br\>";
      $multi = array("Abhishek" =>array
                              ("Choudhary",
                                  "Bunta",
                                  "Popy"),
                     "Bond" => array
                                 ("One",
                                     "two",
                                     "three",
                                     "four"),
                     "Super" => array
                                 ("T1",
                                     "T2")
      );
      
      
      foreach( $multi as $value ){
          echo " count ".count($value) ;
      }
      

      【讨论】:

      • 为什么投反对票?我给出了一种迭代的方法,并且我指出,如果人们想知道子元素的数量,它会很有用。
      【解决方案4】:

      使用foreach() 会更容易

      foreach ($multi as $key => $subarray)
      {
          echo $key . '<br />';
      
          foreach ($subarray as $subvalue)
          {
              echo ' - '.$subvalue . '<br />';
          }
      }
      

      会输出

      Abhishek
      - Choudhary
      - Bunta
      - Popy
      Bond
      - One
      - two
      - three
      - four
      Super
      - T1
      - T2
      

      【讨论】:

        【解决方案5】:

        试试这个:

        <?php
        
        foreach($multi as $key => $value) {
            echo "<br/>Parent Value ".$key."<br/>";
            for($i = 0; $ < sizeof($value); $++) {
                echo "Child Value ".$value[$i]." count ".sizeof($value) ;
            }
        }
        
        ?>
        
        You are using wrong syntax to access it.
        
        • 谢谢

        【讨论】:

          猜你喜欢
          • 2015-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-28
          • 2023-03-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多