如何使用for循环遍历数组

时间:2017-07-03 12:32:49

标签: php arrays loops multidimensional-array

<?php
$people = array(
          'maurice' => array ('name' => 'hillary',
                              'age' =>20,
                              'education'=>'degree'),
          'george' => array ('name' => 'florence',
                              'age' =>30,
                              'education'=>'diploma'),
          'Michael' => array ('name' => 'Andrew',
                              'age' =>10,
                              'education'=>'certificate')

                );

$countp = count($people);

          //echo $people['maurice']['name'];

for ($i=0; $i < $countp; $i++) { 
    for ($j=0; $j < $countp[$i]; $j++) { 
        for ($k=0; $k < $countp[$i][$j]; $k++) { 
            echo $people[$i][$j][$k].'<br />';
        }

    }
    # code...
}


?>

我正在尝试使用for循环遍历多维数组,这可能是问题所在。我已经分享了上面的代码。

3 个答案:

答案 0 :(得分:1)

你应该使用foreach

foreach($people as $name=>$information){
 foreach($information as $informationKey=>$informationValue){
    echo $informationValue;
 }
}

答案 1 :(得分:0)

您的数组不是由整数索引组成。这是钥匙的制作。

我们如何重写你的for循环

foreach ($people as $person => $data) { 
    echo $person . PHP_EOL;
    echo "Name : " .$data['name'] . PHP_EOL;
    echo "Age : " .$data['age'] . PHP_EOL;
    echo "Education : " .$data['education'] . PHP_EOL;
}

那会让它变得更好!

答案 2 :(得分:0)

  1. 您使用字符串作为键(而不是整数),因此您需要像$people['maurice']['name']一样访问数组,而不是$people[0][0]
  2. 您只有两个维度,因此您不需要三个循环
  3. 您应该使用foreach() http://php.net/manual/en/control-structures.foreach.php