飞龙博客

妙法莲华经

php如何去掉数组中某个或某些值

feilong.org 修订于2012-02-02 12:40:26

如何去掉数组中的某个或某一些值?可以采用php函数array_filter()过滤,或者用array_diff() 函数,返回两个数组的差集数组。

array_filter() 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

如果没有提供 callback 函数,array_filter() 将删除 array 中所有等值为 FALSE 的条目。


//当数组中存在空值和php值时,换回false,也就是去掉该数组中的空值和php值
function delEmpty($v){
if($v==='' || $v==='php'){
return false;
}
return true;   
}

$a=array(0=>'pig',1=>'Cat',2=>'',3=>'php',4=>'feilong');

//当数组中存在空值和php值时,array_filter 可以去掉该数组中的空值和php值,但剩下来的 key不变
$b=array_filter($a,"delEmpty");   
print_r($b);

//sort 可以重组key和数组
sort($b);
print_r($b);

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。在返回的数组中,键名保持不变。

//当数组中存在空值和php值时,换回false,也就是去掉该数组中的空值和php值
$postid=88;
$old=array(3,5,48,9,22,177,90);
 
if(in_array($postid,$old)){
echo '已经有了,该去掉';
$a2[]=$postid;
//从数组中去掉此 $postid,返回两个数组的差集数组。键名保持不变。
$new=array_diff($old,$a2);// $old-$a2
print_r($new);

}else{
$new=$old;$new[]=$postid;
print_r($new);
}//feilong.org 20120202

更新网址:https://feilong.org/php-array-filter-or-diff
最初发布:20120202 12:40:26 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: 网站开发

新作:

旧文: