PHP如何用array_filter過濾數組?

來源:互聯網
上載者:User
資料庫輸出數組是

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);
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.