我需要在php中结合使用两个数组。
我所拥有的:
numbers = (1, 2,3,4,5,6);
letters = ('q', 'w', 'e', 'r');
我需要什么:
1 q
2 w
3 e
4 r
5
6
重要提示:我永远不会知道“数字”或“字母”数组包含多少个项目(只是长度永远不相等),这会因情况而异。
到目前为止,使我最接近目标,但这将所有字母都提交给每个数字:
function array_combine2($arr1, $arr2) {
return array_combine(
array_intersect_key($arr1, $arr2),
array_intersect_key($arr2, $arr1));
}
foreach(array_combine2($number,$array) as $n1 => $a1)
{
echo $n1 . $a1."<br>";
}
答案 0 :(得分:1)
您可以使用count()
和array_fill()
生成“空白数组”,然后使用+
运算符覆盖该数组。
请参阅:Array Operators
$num = array(1, 2, 3, 4, 5);
$let = array('a', 'b', 'c');
$overlay = array_fill(0, count($num), NULL);
$sample = array_combine($num, $let + $overlay);
var_dump($sample);
输出:
array(5) {
[1]=>
string(1) "a"
[2]=>
string(1) "b"
[3]=>
string(1) "c"
[4]=>
NULL
[5]=>
NULL
}
答案 1 :(得分:0)
function custom_arr_combine($numbers, $letters) {
$lengthMax = count($numbers);
if ($lengthMax < count($letters))
$lengthMax = count($letters);
$new_arr = [];
for($i = 0; $i < $lengthMax; $i++) {
$key = "";
if (isset($numbers[$i]))
$key = $numbers[$i];
$value = "";
if (isset($letters[$i]))
$value = $letters[$i];
$new_arr[$key] = $value;
}
return $new_arr;
}
// test
$numbers = array(1, 2,3,4,5,6);
$letters = array('q', 'w', 'e', 'r');
$arr = custom_arr_combine($numbers, $letters);
foreach($arr as $nbr => $letter)
echo $nbr. " ". $letter. "\n";
此自定义功能可以在此link中为您提供帮助吗