array_filter 用法

Jackey PHP 3,661 次浏览 , , 没有评论

array_filter — 用回调函数过滤数组中的单元

  1. $input = [
  2. [
  3. 'id' => 1,
  4. 'name' => '11'
  5. ],
  6. [
  7. 'id' => 2,
  8. 'name' => '22'
  9. ],
  10. [
  11. 'id' => 3,
  12. 'name' => '33'
  13. ],
  14. [
  15. 'id' => 4,
  16. 'name' => '44'
  17. ],
  18. ];
  19. $result = array_filter($input, function($v, $k){
  20. return $v['id'] == 1;
  21. }, ARRAY_FILTER_USE_BOTH);
  22. print_r($result);

打印结果:

  1. (
  2. [0] => Array
  3. (
  4. [id] => 1
  5. [name] => 11
  6. )
  7.  
  8. )

array_filter其实是一个相当好用的函数,常用的场景包括,表单多条件筛选,可以直接用此函数过滤掉没有值的筛选项。

但是有一个问题,必须要重视:

array_filter会过滤掉任何值等于FALSE的值,也就是说  0值,空字符串,null,都会被过滤
当你的筛选项里有值等于0时,问题就会暴露出来。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Go