以关联方式映射数组

时间:2013-12-12 15:30:28

标签: php arrays associative-array

我定义了以下数组。

$a = Array
(
    [0] => 30:27
    [1] => 29:28
    [2] => 30:27
)
$b = Array
(
    [0] => 102186
    [3] => 102991
    [4] => 102241
)

我使用过array_map($a,$b);但不是我想要的结果。

始终是第一个键,第二个键到第二个键,第三个键到第三个键,我希望得到以下结果...

$ab = $b = Array
    (
        [0] => 102186 [30:27]
        [1] => 102991 [29:28]
        [2] => 102241 [30:27]
    ) 

3 个答案:

答案 0 :(得分:3)

编辑:

如果数组键不匹配(认为这是一个错字),那么只需使用$a = array_values($a)$b = array_values($b)重置数组:

$a = array(
    0 => "30:27",
    1 => "29:28",
    2 => "30:27"
);
$b = array(
    0 => "102186",
    3 => "102991",
    4 => "102241"
);

// Reset keys
$a = array_values($a);
$b = array_values($b);

$ab = array();
for ($i=0; $i < count($a); $i++) {
    $ab[] = "{$b[$i]} [{$a[$i]}]";
}

echo "<pre>";
    print_r($ab);
echo "</pre>";

输出:

Array
(
    [0] => 102186 [30:27]
    [1] => 102991 [29:28]
    [2] => 102241 [30:27]
)

答案 1 :(得分:2)

使用:

$ arrayFirst和$ arraySecond - 您的输入数组;

   $result = array();
    for ($i=0; $i < count($arrayFirst); $i++) {
        $result[] = "{$arraySecond[$i]} [{$arrayFirst[$i]}]";
    }

    var_dump ($result);

array_merge_recursive()

$array = array_merge_recursive($array1, $array2);

答案 2 :(得分:2)

只需遍历第一个数组并添加第二个数组中的相应值。您实际上可以使用array_map

$ab = array_map(function($aVal, $bVal){
    return "$bVal [$aVal]";
}, $a, $b);

DEMO:https://eval.in/78684