官方文件中給了兩種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影片教學
#來看第二種,程式碼如下:
$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 . '<br>'; print_r($v); echo '<br>'; foreach ($a[$k] as $index => $value) { echo $k . '<br>'; echo $index . '<br>'; echo $value . '<br>'; } }
可以看到,我們設定了一個二維數組$a,並且設定了索引,部分輸出如下:
第一行:可以看到$k對應的就是第二維數組的索引,例如第一個數組的「one」第二行:$v對應的是第二維的陣列(因為不能直接用echo輸出,這裡使用了print_r),例如第一個資料的array(1,2,3,4),foreach中嵌套的那一層循環中,$ a[$k]表示的就是$v,這裡寫$a[$k]和寫$v輸出結果都是一樣的,因為表示的也是同樣的意思
第三行:$k仍舊是第二維數組的索引第四行:$index是第二維數組資料的索引,隱含定義的,從0開始
#第五行:$value是第二維數組的資料接下來就是重複的輸出了。
############可以看到foerach的確是個很強大的函數,上面是沒有定義第二位數組的資料索引的情況,那如果第二位數組的資料也定義索引呢,其實都一樣,foreach語句也相同###$b=array ( '0' => Array ( 'jid' => 10,'j名' => 10,'jabstract' => 10,'jprovider' => 10,'jintroduction' => '厉害人物'), '1' => Array ( 'jid' => 8 ,'j名' => 8, 'jabstract' => 8, 'jprovider' => 8, 'jintroduction' => '厉害人物') );
foreach ($b as $k => $v) { echo $k.'<br>'; print_r($v); echo '<br>'; foreach ($b[$k] as $index => $value){ echo $index.'<br>'; echo $value.'<br>'; } }###輸出跟上面的也是一樣的原理##################注意使用utf-8格式,要不然輸出的時候會亂碼。 #########推薦教學:###PHP影片教學#######
以上是php如何遍歷二維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!