資料庫輸出數組是
Array( [0] => Array ( [id] => 1 [name] => 你好,234 [cate] => 生活日記 ) [1] => Array ( [id] => 2 [name] => 79798 [cate] => 攝影美圖 ) [2] => Array ( [id] => 3 [name] => 567567 [cate] => 生活日記 ))
過濾裡面cate = 攝影美圖,其它全部保留,效果是
Array( [0] => Array ( [id] => 1 [name] => 你好,234 [cate] => 生活日記 ) [1] => Array ( [id] => 2 [name] => 79798 [cate] => 生活日記 ))
如何用array_filter實現呢? 感覺array_filter不太好用。
回複內容:
資料庫輸出數組是
Array( [0] => Array ( [id] => 1 [name] => 你好,234 [cate] => 生活日記 ) [1] => Array ( [id] => 2 [name] => 79798 [cate] => 攝影美圖 ) [2] => Array ( [id] => 3 [name] => 567567 [cate] => 生活日記 ))
過濾裡面cate = 攝影美圖,其它全部保留,效果是
Array( [0] => Array ( [id] => 1 [name] => 你好,234 [cate] => 生活日記 ) [1] => Array ( [id] => 2 [name] => 79798 [cate] => 生活日記 ))
如何用array_filter實現呢? 感覺array_filter不太好用。
啥也不說,直接上代碼,可惜php的閉包跟js一樣又臭又長:
$data = [ [ 'id' => 1, 'name' => '你好,234', 'cate' => '生活日記'], [ 'id' => 2, 'name' => '79798', 'cate' => '攝影美圖'], [ 'id' => 3, 'name' => '567567', 'cate' => '生活日記'],];$filtered = array_filter($data, function($item){ return $item['cate'] !== '攝影美圖'; });print_r($filtered);
注意看array_filter
的第二個參數,第二個參數是一個自訂函數。這個自訂函數是為了設定過濾條件。
1, 'cate'=>"生活日記"), array('id'=>2, 'cate'=>"攝影美圖"), ); var_dump($arr); function filter($rows){ if($rows['cate']==="攝影美圖"){ return false; }else{ return true; } } $arr = array_filter($arr, 'filter'); var_dump($arr);
我覺得不用array_filter也能達到目的呀
array('id' => '1', 'name' => '你好,234', 'cate' => '生活日記'), 1 => array('id' => '2', 'name' => '79798', 'cate' => '攝影美圖'), 2 => array('id' => '3', 'name' => '567567', 'cate' => '生活日記'), ); $resultArr = array(); foreach ($oriArr as $key => $value) { if ($value['cate'] === '攝影美圖') { continue; } else { $resultArr[] = $value; } } print_r($resultArr);