首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关联映射数组

关联映射数组
EN

Stack Overflow用户
提问于 2013-12-12 15:30:27
回答 3查看 250关注 0票数 1

我定义了以下数组。

代码语言:javascript
复制
$a = Array
(
    [0] => 30:27
    [1] => 29:28
    [2] => 30:27
)
$b = Array
(
    [0] => 102186
    [3] => 102991
    [4] => 102241
)

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

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

代码语言:javascript
复制
$ab = $b = Array
    (
        [0] => 102186 [30:27]
        [1] => 102991 [29:28]
        [2] => 102241 [30:27]
    ) 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-12 15:36:30

只需在第一个数组上循环并从第二个数组中添加相应的值。实际上,您可以使用array_map进行如下操作:

代码语言:javascript
复制
$ab = array_map(function($aVal, $bVal){
    return "$bVal [$aVal]";
}, $a, $b);

演示:https://eval.in/78684

票数 2
EN

Stack Overflow用户

发布于 2013-12-12 15:36:45

编辑:

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

代码语言:javascript
复制
$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>";

产出:

代码语言:javascript
复制
Array
(
    [0] => 102186 [30:27]
    [1] => 102991 [29:28]
    [2] => 102241 [30:27]
)
票数 3
EN

Stack Overflow用户

发布于 2013-12-12 15:32:27

使用:

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

代码语言:javascript
复制
   $result = array();
    for ($i=0; $i < count($arrayFirst); $i++) {
        $result[] = "{$arraySecond[$i]} [{$arrayFirst[$i]}]";
    }

    var_dump ($result);

数组

代码语言:javascript
复制
$array = array_merge_recursive($array1, $array2);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20547536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档