1. php中如何去除一个数组中的空元素
array_filter() 函数用回调函数过滤数组中的值。
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。
例如:
<?php
function test_odd($var)
{
return($var & 1);
}
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
?>
运行结果:Array ( [3] => 3 )
(1)php删除一维数组扩展阅读:
循环遍历数组,把有值的元素放进一个新数组中。
$arr = array();
foreach ($urlArr as $key => $val) {
if (empty($val)) {continue;}
$arr[] = $val;
}
$arr是去除空元素的新数组。
2. php如何从数组中删除一个元素
如果要在某个数组中删除一个元素,可以直接用的unset,例子代码:
<?php
$arr
=
array('a','b','c','d');
print_r($arr);
unset($arr[1]);
print_r($arr);
?>
以上代码输出的结果如下:
E:\TEMP\文件\exp>a.phpArray(
[0]
=>
a
[1]
=>
b
[2]
=>
c
[3]
=>
d)Array(
[0]
=>
a
[2]
=>
c
[3]
=>
d)
3. php 删除多维数组指定元素
foreach($data_arras$key=>$data){
if(in_array('id',array_keys($data))){
unset($data_arr[$key]['id']);
}
}
4. php 怎么删除第一个数组
删除第一个数组:unset($arr[0]);
删除数组第一元素
$arr1=array('apple','banana','orange');
$result1=array_shift($arr1);
print_r($result1);
print_r($arr1);
5. php如何删除两个数组中相同的元素
首先,我看到这个问题中描述是“如何删除两个数组中相同的元素”,虽然那个人写了一大堆,竟然用的是array_unique(),从分析到给出的demo一直在解决如何删除“一个”数组中“重复”的元素。汗!答非所问的答案竟然会被采纳。
这里,简单分析一下提问者的真实意图,分以下2种情况:
1.现在有2个一维数组, $arr1和$arr2,现在要删除 $arr1 中存在于 $arr2 的元素。
解决方案:使用array_diff对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值,代码如下:
<?php
$arr1=array(1,2,3,4);
$arr2=array(2,4);
//这一句即可
$arr1=array_diff($arr1,$arr2);
var_mp($arr1);
2.先声明一下,我看了lt318025大神给出的答案,他的思维非常活跃,已经分了2种情况。
现在有2个一维数组,$a和$b,即删除$a中存在于$b的元素,删除$b中$a存在的元素,组后合并返回。
可是lt318025大神用的PHP版本太高,给出的demo在低版本PHP下运行失败,这里修正一下:
<?php
$a=array(1,2,3);
$b=array(2,3,4);
//得到存在于$a但不存在于$b中的元素组成的数组
$c=array_diff($a,$b);
//这里简单求出在$a但不在$b中的元素
var_mp($c);
//得到存在于$a但不存在于$b中的元素组成的数组与存在于$b但不存在于$a中的元素组成的数组的并集
$d=array_merge(array_diff($a,$b),array_diff($b,$a));
//这里彻底剔除了同时存在于$a和$b中的元素
var_mp($d);
究竟是哪一种情况,这需要看提问者的需求了。
6. php中一维或多维数组去除重复项
方案一
$arr = array("0a","1b","2c","3d","4e","5f","6g","0a","2c","4e","6g","6g");
$arr1 = array_flip($arr);
$arr2 = array_flip($arr1);
print_r($arr2);
方案二
$arr = array("0a","1b","2c","3d","4e","5f","6g","0a","2c","4e","6g","6g");
$a = array_count_values($arr);
$b = array_keys($a);
print_r($b);
方案三
$arr = array("0a","1b","2c","3d","4e","5f","6g","0a","2c","4e","6g","6g");
foreach($arr as $k=>$v){
$arr1[$v] = $k;
$arr2 = array_flip($arr1);
}
print_r($arr2);
方案四
$arr = array("0a","1b","2c","3d","4e","5f","6g","0a","2c","4e","6g","6g");
$arr1 = array_unique($arr);
print_r($arr1);
都是刚刚我实验出来的 都可以封装起来用递归实现多维去掉重复项
7. php中如何删除二维数组中含有指定元素的所有一维数组要求如下:
foreach( $arr as $key => $value ) {
if(in_array('w',$value)) unset($arr[$key]);
}
8. PHP数组问题,怎么把array去掉,变成一维数组
举个例子吧,以下面的代码为例,将其变成一维数组。
$msg = array(
array(
'id'=>'45',
'name'=>'jack'
),
array(
'id'=>'34',
'name'=>'mary'
),
array(
'id'=>'78',
'name'=>'lili'
),
);
第一种方法:
复制代码 代码如下:
foreach($msg as $k => $v){
$ids[] = $id;
$names[] = $name;
}
第二种方法:
复制代码 代码如下:
$ids = array_column($msg, 'id');
$names = array_column($msg, 'name');
以上两种解法print_r($names);后的结果为:
复制代码 代码如下:
Array(
[0]=>jack
[1]=>mary
[2]=>lili
)
注意:array_column();可以有第三个参数,如 $n = array_column($msg, 'name', 'id');
print_r($n);的结果为:
复制代码 代码如下:
Array(
[45]=>jack
[34]=>mary
[78]=>lili
)
9. php删除数组中的一个元素,其他元素的顺序会改变吗
顺序的话,少了一个肯定向前啊。
如果是键值,那么键值也不会改变。
(好像你在排队一下,少一个人肯定后面的向前走,不会出现什么顺序打乱之类的。)
如果你用的特定函数,比如array_shift() 函数的话(并且键值是自己设定的话,就不会改变键名;如果自动生成,会帮你重新排列键名,顺序不管怎么样都不会打乱,最多就是键名打断;除非这个函数说了,会随即打乱排序,那就会打乱咯。)
-----------
不采纳?我继续补充~
例如:
键值:1 2 3 4 5
对应:A B C D E
如果我用unset 删除了键值为4的D,那么,数组的排序就是:
键值:1 2 3 5
对应:A B C E
也就是少了一个数
如果这回我用的array_shift()函数删除键值为4的D,结果就是:
键值:0 1 2 3
对应:A B C E
它自动从0开始把键值重新排序。
如果不出意外的情况下,键值是直接对应具体的值的。也就说,键值位置的改变,值也会设置而变。
求采纳T_T