我有两个数组如下:
$arr = array('one.jpg', 'two.jpg', 'three.jpg');
$arr1 = array('', 'five.jpg', '');
现在我想将这两个数组放到一个具有以下值的数组中:
$newArray = array('one.jpg', 'five.jpg', 'three.jpg');
如何使用PHP执行此操作?
答案 0 :(得分:3)
使用array_filter删除空值。
使用array_replace将第一个数组中的值替换为第二个数组的剩余值。
$arr1=array_filter($arr1);
var_dump(array_replace($arr,$arr1));
答案 1 :(得分:2)
假设您想要仅使用第二个中的 truthy 值覆盖第一个数组中的条目:
$newArray = array_map(function ($a, $b) { return $b ?: $a; }, $arr, $arr1);
答案 2 :(得分:1)
您可以遍历数组并检查第二个数组的值:
$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);
答案 3 :(得分:0)
使用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];
}
}