PHP循環出力2次元配列

4428 ワード

目的:2 D配列の各要素を出力する
まず2 D配列を定義します
//    
$arr = array(
    array('  ','  ','  ','  '),
    array('   ','  ','  ','  ')
);

 
一forサイクル出力
1.1直接出力
//for      
for($i = 0; $i < count($arr); $i++) {
    for($j = 0; $j < count($arr[$i]); $j++) {
        echo $arr[$i][$j]."
"; } }

結果はこうだった
北京上海深セン広州黒竜江省吉林遼寧省
江蘇省
 
1.2または循環したすべての要素を新しい1次元配列に配置し、1次元配列を出力する
//for      
for($i = 0; $i < count($arr); $i++) {
    for($j = 0; $j < count($arr[$i]); $j++) {
        $arrs[] = $arr[$i][$j];

    }
}
var_dump($arrs);

結果はこうだった
array (size=8)
  0 =>  '  ' (length=6)
  1 =>  '  ' (length=6)
  2 =>  '  ' (length=6)
  3 =>  '  ' (length=6)
  4 =>  '   ' (length=9)
  5 =>  '  ' (length=6)
  6 =>  '  ' (length=6)
  7 =>  '  ' (length=6) (size=8)
  0 =>  '北京' (length=6)
  1 =>  '上海' (length=6)
  2 =>  '深圳' (length=6)
  3 =>  '广州' (length=6)
  4 =>  '黑龙江' (length=9)
  5 =>  '吉林' (length=6)
  6 =>  '辽宁' (length=6)
  7 =>  '江苏' (length=6)

 

二 使用foreach

2.1 直接输出元素

foreach ($arr as $key => $value) {
    foreach ($value as $k => $v) {
        echo $v."
"; } }

北京上海深セン広州黒竜江省吉林遼寧省
江蘇省
 
2.2要素を新しい配列に配置し、一次元配列に変換し、再出力する
foreach ($arr as $key => $value) {
    foreach ($value as $k => $v) {
        $arrs[] = $v; 
    }
}
var_dump($arrs);
array (size=8) 0 => ' ' (length=6) 1 => ' ' (length=6) 2 => ' ' (length=6) 3 => ' ' (length=6) 4 => ' ' (length=9) 5 => ' ' (length=6) 6 => ' ' (length=6) 7 => ' ' (length=6) (size=8)
0=>'北京'(length=6)
1=>'上海'(length=6)
2=>'深セン"(length=6)
3=>'広州'(length=6)
4=>'黒龍江'(length=9)
5=>'吉林'(length=6)
6=>'遼寧'(length=6)
7=>'江蘇'(length=6)
 
まとめ:
foreachとforループの効果は同じで、foreachはforループのカプセル化にすぎず、forループの一部の操作を簡単にした.