array_filter()过滤php空数组以及sort排序

每次删除空数组都会到网上搜下函数,几乎每次都用array_filter() 这个函数,所以这次果断做个笔记,希望可以记得深刻点。

array_filter() 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。 如果没有提供 callback 函数,array_filter() 将删除 array 中所有等值为 FALSE 的条目。


$entry = array(
 0 => '友博网络',
 1 => false,
 2 => '智浩软件',
 3 => null,
 4 => '',
 5 => 'http://www.u-bo.com',
 6 => '0'
);

$arrayFilter = array_filter($entry);
echo "<pre>";
print_r($arrayFilter);
echo "</pre>";

结果显示如下:

Array
(
    [0] => 友博网络
    [2] => 智浩软件
    [5] => http://www.u-bo.com
)

可以看出,false,null,和真正的”空白以及0都被过滤了,而且数组的下标没有改变。如果我想对array_filter()处理过的新数组的键名序列化成0,1,2,3,就需要使用以下的方法:

bool sort ( array &array [, int sort_flags] )

本函数对数组进行排序。当本函数结束时数组单元将被从最低到最高重新安排。
注意: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
如果成功则返回 TRUE,失败则返回 FALSE。

在以上的数组输出中加入:sort($arrayFilter),结果如下

Array
(
    [0] => http://www.u-bo.com
    [1] => 友博网络
    [2] => 智浩软件
)

 

 

 

 

array_filter()过滤php空数组以及sort排序》有2个想法

发表评论

邮箱地址不会被公开。