腾讯云618限量抢购
  1. PHP+MySQL数据库教程
  2. PHP进阶教程
  3. ThinkPHP 3.0/3.1 教程

PHP array_filter()函数:过滤数组中的(空)值

最后更新:2020-03-02 11:32阅读:3097

array_filter() 函数根据回调函数过滤数组中的值,省略回调函数则默认过滤空值。

array_filter()

语法:

array_filter( array[, function] )

省略回调函数过滤数组单元空值的例子

<?php
$array = array(
    0 => '我爱开发网',
    1 => 'www.5idev.com',
2 => null, 3 => 1, 4 => '', 5 => false, 6 => '0' ); print_r(array_filter($array)); ?>

运行该例子输出:

Array
(
    [0] => 我爱开发网
    [1] => www.5idev.com
    [3] => 1
)

过滤的空值,与empty()函数对应,具体包括:0,'0','',false,array(),null等,具体参见:《PHP empty() 检测一个变量是否为空》一文。

使用回调函数过滤指定值

$array = array(
    0 => 'www.5idev.com',
    1 => 1,
    2 => 6,
    3 => '',
    4 => false,
    5 => 0,
    6 => -6,
    7 => '8'
);

function filter($v){
    if( is_int($v) && $v % 2 == 0 ){
        return true;
    } else {
        return false;
    }
}

print_r(array_filter($array,"filter"));

运行该例子输出:

Array
(
    [2] => 6
    [5] => 0
    [6] => -6
)

如果有回调函数,array_filter函数会依次将数组单元的值传递到回调函数,如果回调函数返回true,则该单元会被保留,反之则该数组单元则会被删除。

注意,如果被过滤的数组是关联数组,键名会保持不变。array_filter操作的是原数组的一个副本,如果要想改变原数组,则需要重新赋值:

$array = array_filter($array);

参考阅读

 


本章节内容共分 16 部分:
  1. 1. PHP 数组 Array
  2. 2. PHP 数组遍历 foreach 语法结构
  3. 3. PHP is_array() 检测变量是否是数组
  4. 4. PHP 打印输出数组内容及结构 print_r 与 var_dump 函数
  5. 5. PHP 计算数组中的单元数目或对象中的属性个数 count 函数
  6. 6. PHP 计算数组中值的和与乘积 array_sum 与 array_product 函数
  7. 7. PHP 统计数组中所有的值出现的次数 array_count_values 函数
  8. 8. PHP 检查数组中是否存在某个值 in_array 函数
  9. 9. PHP 检查给定的键名或索引是否存在于数组中 array_key_exists 函数
  10. 10. PHP 在数组中搜索给定的值 array_search 函数
  11. 11. PHP list() 将数组中的值赋给变量
  12. 12. PHP 数组排序 sort、asort 及 ksort 系列函数
  13. 13. PHP 对数组使用 自然算法 进行排序 natsort 与 natcasesort 函数
  14. 14. PHP 对多个数组或多维数组进行排序 array_multisort 函数
  15. 15. PHP 将数组打乱 shuffle 函数
  16. 16. PHP array_filter()函数:过滤数组中的(空)值
腾讯云618限量抢购