0

我希望将 Key 和 Value 与 2 个数组结合,但两个数组不相等。

$array1 = array("1","2","3","4","5");
$array2 = array("apple","banana","","dog","");
$key_value = array_combine($array1,$array2);

输出是:

array_combine():两个参数应该有相同数量的元素

但我需要低于输出就像

print_r($key_value);
array(5) { 
          [1]=> string(5) "apple" 
          [2]=> string(6) "banana" 
          [3]=> string(8) "No Value" 
          [4]=> string(3) "dog" 
          [5]=> string(8) "No Value" 
         }

如果为空,如何执行此操作,插入“无值”文本。

4

2 回答 2

1

你可以通过foreach循环来做到这一点:

$res = [];
foreach($array1 as $ind=>$num){
    $res[$num] = $array2[$ind] === "" ? "No Value" : $array2[$ind]; 
}

print_r($res);

输出:

Array
(
    [1] => apple
    [2] => banana
    [3] => No Value
    [4] => dog
    [5] => No Value
)

演示

于 2020-01-27T07:27:28.037 回答
0

使用array_map()array_combine()

<?php

$array1 = array("1","2","3","4","5");
$array2 = array("apple","banana","","dog","");

 $array2 = array_map(function($v){
        return (empty($v)) ? "No Value" : $v;
    },$array2);

$key_value = array_combine($array1,$array2);
print_r($key_value);

https://3v4l.org/CY4ku

于 2020-01-27T07:36:53.043 回答