我需要一个帮助。我需要通过使用PHP匹配键来从多个数组中删除值。我在下面解释我的代码。
$str="ram,,madhu,kangali";
$strid="1,2,,3";
$arr=explode(",",$str);
$arrId=explode(",", $strid);
我有两个数组i.e-$arr,$arrId
,它有一些空值。在这里我需要,如果任何数组值为空,该值将被删除,而另一个数组中的相同索引值也将被删除。e.g-suppose for $arr the 1 index value is blank and it should delete and also the the first index value i.e-2 will also delete from second array and vice-versa.
请帮助我。
答案 0 :(得分:2)
试试这个:
$str="ram,,madhu,kangali";
$strid="1,2,,3";
$arr=explode(",",$str);
$arrId=explode(",", $strid);
$arr_new=array();
$arrId_new=array();
foreach ($arr as $key => $value) {
if(($value != "" && $arrId[$key] != "")){
array_push($arr_new, $value);
array_push($arrId_new, $arrId[$key]);
}
}
var_dump($arr_new);
var_dump($arrId_new);
答案 1 :(得分:2)
尝试:
foreach ($arr as $key => $value) {
if ( empty($value) || empty($arrId[$key]) ) {
unset($arr[$key]);
unset($arrId[$key]);
}
}
答案 2 :(得分:1)
您可以将两个列表压缩在一起,然后只保留两个字符串都不为空的条目:
$zipped = array_map(null, $arr, $arrId);
$filtered = array_filter($zipped, function ($tuple) {
return !empty($tuple[0]) && !empty($tuple[1]);
});
$arr = array_map(function($tuple) {return $tuple[0];}, $filtered);
$arrId = array_map(function($tuple) {return $tuple[1];}, $filtered);