1

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

$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 非常陌生,所以我的期望可能无效,或者我错过了一些非常愚蠢的事情。

4

5 回答 5

3

我建议你阅读一些关于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数组

于 2013-10-29T07:04:26.300 回答
2

使用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
于 2013-10-29T07:05:39.843 回答
2

@bunta 请查看:PHP Foreach

你可以使用 foreach 代替。

还:

PHP foreach循环遍历多维数组

HTH。

于 2013-10-29T06:59:26.903 回答
0

尝试这个 :

<?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.
  • 谢谢
于 2013-10-29T09:23:23.090 回答
-1

您只需要使用 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) ;
}
于 2013-10-29T07:05:01.797 回答