首頁  >  文章  >  後端開發  >  php如何遍歷二維數組

php如何遍歷二維數組

王林
王林原創
2019-09-24 17:54:099295瀏覽

php如何遍歷二維數組

官方文件中給了兩種foreach的用法

foreach 語法結構提供了遍歷陣列的簡單方式。 foreach 僅能夠應用於數組和對象,如果嘗試應用於其他資料類型的變量,或未初始化的變數將發出錯誤訊息。

有兩種語法:

foreach (array_expression as $value)
   statement
foreach (array_expression as $key => $value)
   statement

第一種格式遍歷給定的 array_expression 陣列。每次循環中,當前單元的值被賦給 $value 並且數組內部的指標向前移一步(因此下一次循環中將會得到下一個單元)。

第二種格式做同樣的事,只除了目前單元的鍵名也會在每次循環中被賦給變數 $key。

相關文章推薦:
1.什麼是php二維陣列?php二維陣列實例詳解
2.php對於二維陣列的對應操作
 相關影片推薦:
1.獨孤九賤(4)_PHP影片教學

#來看第二種,程式碼如下:

php如何遍歷二維數組

$a = array(
    "one" => array(1,2,3,4),
    "two" => array(5,6,7,8),
    "three" => array('a','b','c','d')
);
foreach ($a as $k => $v) {
    echo $k . &#39;<br>&#39;;
    print_r($v);
    echo &#39;<br>&#39;;
    foreach ($a[$k] as $index => $value) {
        echo $k . &#39;<br>&#39;;
        echo $index . &#39;<br>&#39;;
        echo $value . &#39;<br>&#39;;
    }
}

可以看到,我們設定了一個二維數組$a,並且設定了索引,部分輸出如下:

第一行:可以看到$k對應的就是第二維數組的索引,例如第一個數組的「one」

php如何遍歷二維數組第二行:$v對應的是第二維的陣列(因為不能直接用echo輸出,這裡使用了print_r),例如第一個資料的array(1,2,3,4),foreach中嵌套的那一層循環中,$ a[$k]表示的就是$v,這裡寫$a[$k]和寫$v輸出結果都是一樣的,因為表示的也是同樣的意思

第三行:$k仍舊是第二維數組的索引第四行:$index是第二維數組資料的索引,隱含定義的,從0開始

#第五行:$value是第二維數組的資料接下來就是重複的輸出了。

############可以看到foerach的確是個很強大的函數,上面是沒有定義第二位數組的資料索引的情況,那如果第二位數組的資料也定義索引呢,其實都一樣,foreach語句也相同###
$b=array (    &#39;0&#39; => Array ( &#39;jid&#39; => 10,&#39;j名&#39; => 10,&#39;jabstract&#39; => 10,&#39;jprovider&#39; => 10,&#39;jintroduction&#39; => &#39;厉害人物&#39;),
   &#39;1&#39; => Array ( &#39;jid&#39; => 8 ,&#39;j名&#39; => 8, &#39;jabstract&#39; => 8, &#39;jprovider&#39; => 8, &#39;jintroduction&#39; => &#39;厉害人物&#39;)
);
foreach ($b as $k => $v) {
    echo $k.&#39;<br>&#39;;
    print_r($v);
    echo &#39;<br>&#39;;
    foreach ($b[$k] as $index => $value){
        echo $index.&#39;<br>&#39;;
        echo $value.&#39;<br>&#39;;
    }
}
###輸出跟上面的也是一樣的原理##################注意使用utf-8格式,要不然輸出的時候會亂碼。 #########推薦教學:###PHP影片教學#######

以上是php如何遍歷二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn