3 回答

TA贡献1886条经验 获得超2个赞
如果要$array1基于的值进行过滤$array2,则可以filter与第三个参数ARRAY_FILTER_USE_KEY一起使用以使用键。
$array1 = [1,2,3];
$array2 = [1,null,500];
$newArray1 = array_filter($array1, function ($key) use ($array2) {
return $array2[$key];
},ARRAY_FILTER_USE_KEY
);
$newArray2 = array_filter($array2);
echo "<pre>";
print_r( $newArray1 );
print_r( $newArray2 );
echo "</pre>";
结果将是:
Array
(
[0] => 1
[2] => 3
)
Array
(
[0] => 1
[2] => 500
)

TA贡献1798条经验 获得超7个赞
您可以用来array_intersect从array1获取非空值
$arr = array(
1 => array(1,2,3),
2 => array(1,'',3)
);
$result= array_filter(array_intersect($arr[1],$arr[2]));
echo '<pre>';
print_r($result);
结果
Array
(
[0] => 1
[2] => 3
)
- 3 回答
- 0 关注
- 217 浏览
添加回答
举报