0

我有两个数组:

array(1,2,3,4,5)
array(10,9,8,7,6)

需要的最终数组:

array(0=>1:10,1=>2:9,2=>3:8,3=>4:7,4=>5:6)

我可以编写一个足够快的自定义函数!但我想使用现有的,所以在 php 中是否已经有任何功能可以做到这一点?传递两个输入数组,得到最终的数组结果?我通读了数组函数,但找不到可以为我提供结果的任何函数或函数组合

4

5 回答 5

4

没有内置功能,但确实没有什么问题loop..只要保持简单

$c = array();
for($i = 0; $i < count($a); $i ++) {
    $c[] = sprintf("%d:%d", $a[$i], $b[$i]);
}

或使用array_map

$c = array_map(function ($a,$b) {
    return sprintf("%d:%d", $a,$b);
}, $a, $b);

现场演示

于 2013-05-29T10:37:39.330 回答
1

尝试这个 :

$arr1   = array(1,2,3,4,5);
$arr2   = array(10,9,8,7,6);

$res    = array_map(null,$arr1,$arr2);
$result = array_map('implode', array_fill(0, count($res), ':'), $res);

echo "<pre>";
print_r($result);

输出:

Array
(
    [0] => 1:10
    [1] => 2:9
    [2] => 3:8
    [3] => 4:7
    [4] => 5:6
)
于 2013-05-29T10:44:09.140 回答
0

见: http: //php.net/functions

特别是:http: //nl3.php.net/manual/en/function.array-combine.php

另外,我不太明白最终的数组结果?你是这个意思吗:

array (1 = 10, 2 = 9, 3 = 8, 4 = 7, 5 = 6)

因为在这种情况下,您必须编写一个自定义函数,该函数循环遍历两个数组并将数组 1 中的 item[x] 与数组 2 中的 item[x] 组合。

于 2013-05-29T10:38:15.020 回答
0
<?php
  $arr1=array(1,2,3,4,5);
  $arr2=array(10,9,8,7,6);
  for($i=0;$i<count($arr1);$i++){
    $newarr[]=$arr1[$i].":".$arr2[$i];
 }
 print_r($newarr);
?>
于 2013-05-29T10:38:32.540 回答
0

使用 array_combine

array_combine($array1, $array2)

http://www.php.net/manual/en/function.array-combine.php

于 2013-05-29T10:39:50.467 回答