【问题标题】:Multiple arrays merging issue [duplicate]多个数组合并问题[重复]
【发布时间】:2018-02-12 15:51:39
【问题描述】:

我有两个数组

第一个数组

array(
    [0] => +970
    [1] => +971
    [2] => +972
)

第二个数组

array(
    [0] => 465465454
    [1] => 321321355
    [2] => 987946546
)

我想像这样合并它们

array(
    [+970] => 465465454
    [+971] => 321321355
    [+972] => 987946546
)

我尝试使用array_merge,但这给了我不想要的结果,例如

$busi_code  = $page1_data->business_code; //array
$busi_num  = $page1_data->business_number; //array

$business_phone_numbers = array_merge($busi_code, $busi_num);

echo '<pre>';
print_r($business_phone_numbers);
echo '</pre>';

它的结果是

[0] => +970
[1] => +971
[2] => +972
[3] => 465465454
[4] => 321321355
[5] => 987946546

所以请指导我如何达到我需要的结果。

【问题讨论】:

    标签: php arrays array-merge


    【解决方案1】:

    您正在寻找array_combine,而不是array_merge

    使用keys数组中的值作为keys,values数组中的值作为对应值来创建一个数组。

    $business_phone_numbers = array_combine($busi_code, $busi_num);
    

    https://eval.in/954799

    【讨论】:

      【解决方案2】:

      这是array_combine函数的工作:

      $business_phone_numbers = array_combine($busi_code, $busi_num);
      

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

      【讨论】:

        【解决方案3】:

        您必须使用 array_combine。

        试试这个:

        $a = array(
        0 => +970,
        1 => +971,
        2 => +972);
        
        $b = array(
        0 => 465465454,
        1 => 321321355,
        2 => 987946546);
        
        $r = array_combine($a,$b);
        print_r($r);
        

        【讨论】:

        • 你的 $b 数组已经是两个数组的组合了,这个问题已经在 10 多分钟前回答了。
        猜你喜欢
        • 2017-10-19
        • 1970-01-01
        • 1970-01-01
        • 2017-03-20
        • 2020-04-28
        • 2013-07-23
        • 2018-02-28
        • 1970-01-01
        • 2014-06-29
        相关资源
        最近更新 更多