如何使用php将数组值替换为另一个数组值?

如何使用php将数组值替换为另一个数组值?,php,Php,我有两个数组,如下所示: $arr = array('one.jpg', 'two.jpg', 'three.jpg'); $arr1 = array('', 'five.jpg', ''); 现在,我想用以下值将这两个数组合并为一个数组: $newArray = array('one.jpg', 'five.jpg', 'three.jpg'); 如何使用PHP执行此操作?您可以迭代数组并检查第二个数组的值: $arr = array('one.jpg', 'two.jpg', 'thre

我有两个数组,如下所示:

$arr = array('one.jpg', 'two.jpg', 'three.jpg');
$arr1 = array('', 'five.jpg', '');
现在,我想用以下值将这两个数组合并为一个数组:

$newArray = array('one.jpg', 'five.jpg', 'three.jpg');

如何使用PHP执行此操作?

您可以迭代数组并检查第二个数组的值:

$arr = array('one.jpg', 'two.jpg', 'three.jpg');
$arr1 = array('', 'five.jpg', '');
$newArray =array();
foreach ($arr as $key => $value) {
    if(isset($arr1[$key]) && $arr1[$key] != "")
        $newArray[$key] = $arr1[$key];
    else
        $newArray[$key] = $value;
}
var_dump($newArray);
假设您只想用第二个数组中的truthy值覆盖第一个数组中的条目:

$newArray = array_map(function ($a, $b) { return $b ?: $a; }, $arr, $arr1);

使用for循环的简单解决方案,不确定是否有更优雅的解决方案:

$arr = array('one.jpg', 'two.jpg', 'three.jpg');
$arr1 = array('', 'five.jpg', '');

$newArray = array();
$size = count($arr);
for($i = 0; $i < $size; ++$i) {
    if(!empty($arr1[$i])){
       $newArray[$i] = $arr1[$i];
    } else {
       $newArray[$i] = $arr[$i];
    }
 }
$arr=array('one.jpg','two.jpg','three.jpg');
$arr1=数组(“”,'five.jpg',“”);
$newArray=array();
$size=计数($arr);
对于($i=0;$i<$size;++$i){
如果(!空($arr1[$i])){
$newArray[$i]=$arr1[$i];
}否则{
$newArray[$i]=$arr[$i];
}
}
用于删除空值

用于将第一个数组的值替换为第二个数组的剩余值

$arr1=array_filter($arr1);
var_dump(array_replace($arr,$arr1));

确切的逻辑应该是什么…?第二个数组中的非假值替换第一个数组中同一索引处的值?您必须为第二个数组执行循环并更新第二个数组,同时在其中获取空值
$newArray=[$arr[0],$arr1[1],$arr[2]@GordonM Eye cee wat你做了什么…这个接线员把我甩了,今天又学了点东西,谢谢;)