最近在用tp3.2框架,在查詢的時候用到了select(),這條語句返回的是二維數組,因此在對返回的數據作處理時,遇到了些麻煩,百度了下foreach,終於用foreach解決了數據的篩選問題express
(由於不知道該怎麼設置where條件,設置只顯示Jdate字段中今天之後的數據,因此只能在select查詢後的數據中進行篩選..基礎沒大佬,真的挺麻煩)數組
進入正題框架
官方文檔中給了foreach的兩種用法ide
foreach 語法結構提供了遍歷數組的簡單方式。foreach 僅可以應用於數組和對象,若是嘗試應用於其餘數據類型的變量,或者未初始化的變量將發出錯誤信息。有兩種語法:函數
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
第一種格式遍歷給定的 array_expression 數組。每次循環中,當前單元的值被賦給 $value 而且數組內部的指針向前移一步(所以下一次循環中將會獲得下一個單元)。spa
第二種格式作一樣的事,只除了當前單元的鍵名也會在每次循環中被賦給變量 $key。3d
來看第二種,代碼以下指針
1 $a = array( 2 "one" => array(1,2,3,4), 3 "two" => array(5,6,7,8), 4 "three" => array('a','b','c','d') 5 ); 6 foreach ($a as $k => $v) { 7 echo $k . '<br>'; 8 print_r($v); 9 echo '<br>'; 10 foreach ($a[$k] as $index => $value) { 11 echo $k . '<br>'; 12 echo $index . '<br>'; 13 echo $value . '<br>'; 14 } 15 }
能夠看到,咱們設置了一個二維數組$a,而且設置了索引,部分輸出以下code
第一行:能夠看到$k對應的就是第二維數組的索引,好比第一條數組的「one」orm
第二行:$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' => '厲害人物') );
1 foreach ($b as $k => $v) { 2 echo $k.'<br>'; 3 print_r($v); 4 echo '<br>'; 5 foreach ($b[$k] as $index => $value){ 6 echo $index.'<br>'; 7 echo $value.'<br>'; 8 } 9 }
輸出跟上面的也是同樣的原理
注意使用utf-8格式,要否則輸出的時候會亂碼
都是些很簡單的東西啦,不過我仍是花了很久才弄明白,可能腦回路跟你們不太同樣,搜索到的文章都沒能和個人節拍
十二月了,18年最後一個月,今年過的好快
2018-12-02