繁体   English   中英

如何使用PHP中的键从多个数组中删除值

[英]How to delete value from mupltiple array using key in PHP

我需要一个帮助。 我需要通过使用PHP匹配键来从多个数组中删除值。 我在下面解释我的代码。

$str="ram,,madhu,kangali";
$strid="1,2,,3";
$arr=explode(",",$str);
$arrId=explode(",", $strid);

我有两个数组, ie-$arr,$arrId ,它具有一些空白值。 在这里,我需要如果数组值中的任何一个为空,则该值将被删除,并且另一个数组中的相同索引值也将被删除。 eg-suppose for $arr the 1 index value is blank and it should delete and also the the first index value ie-2 will also delete from second array and vice-versa. 请帮我。

尝试这个:

 $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);

尝试:

foreach ($arr as $key => $value) {
    if ( empty($value) || empty($arrId[$key]) ) {
        unset($arr[$key]);
        unset($arrId[$key]);
    }
}

您可以将两个列表压缩在一起,然后仅保留两个字符串都不为空的条目:

$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);

链接到小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM