【问题标题】:How to combine the two different into an single array如何将两个不同的组合成一个数组
【发布时间】:2016-07-20 20:43:13
【问题描述】:

我的代码是:

我有两个不同变量的数据集,如下所示。

数组 1:

Array ( [0] => 15-3 [1] => 16-3 [2] => 15-4 [3] => 16-4 [4] => 15-3 [5] => 16-3 [6] => 15-4 [7] => 16-4 [8] => 15-3 [9] => 16-3 [10] => 15-4 [11] => 16-4 [12] => 15-3 [13] => 16-3 [14] => 15-4 [15] => 16-4 ) 

数组 2:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 11 [5] => 22 [6] => 33 [7] => 44 [8] => 111 [9] => 222 [10] => 333 [11] => 444 [12] => 1111 [13] => 2222 [14] => 3333 [15] => 4444 ) 

那我如何将上面的两个数组组合成一个数组,如下所示

$final_array=Array ( [15-3] => 1 [16-3] => 2 [15-4] => 3 [16-4] => 4 [15-3] => 11 [16-3] => 22 [15-4] => 33 [16-4] => 44 [15-3] => 111 [16-3] => 222 [15-4] => 333 [16-4] => 444 [15-3] => 1111 [16-3] => 2222 [15-4] => 3333 [16-4] => 4444)

【问题讨论】:

  • $final_array 键不应重复
  • 我需要 wt 的所有值吗?
  • 你不能有两个元素具有一个相同的键(例如 [15-3])。
  • 所以这个帖子没有解决方案@mitkosoft
  • 是的,但是如果你想保留两个数组中的所有值和键,final_array 必须是多维的。

标签: php arrays key


【解决方案1】:
    function foo($key, $val) {
      return array($key=>$val);
    }
    $arrResult = array_map('foo', $attri_ids_all, $inventory_code_qty);

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

【讨论】:

    【解决方案2】:

    使用多维数组

    $result_array = array();
    foreach($attri_ids_all as $key=>$value){
        $result_array[$key][$value] = $inventory_code_qty[$key];
    }
    

    【讨论】:

    • 之后如何合并所有值
    【解决方案3】:

    你好试试这个你需要foreach循环的代码

    $final_array = array();
    foreach($attri_ids_all as $key=>$value){
        $final_array[$value] = $inventory_code_qty[$key];
    }
    

    并打印 $final_array 数组

    【讨论】:

    • 是的,我看到第一个数组值重复了多次,所以这是不可能的,所以我建议多维数组试试这个代码。 $final_array = 数组(); for($i=0 ; $i
    【解决方案4】:

    你可以使用array_combine,你可以在这里阅读:http://php.net/manual/en/function.array-combine.php

    基本上你需要使用:

    $final_array = array_combine($attri_ids_all, $inventory_code_qty);
    

    【讨论】:

    • 数组合并是删除重复值
    【解决方案5】:

    做一个foreach():

    $final = array();
    foreach($attri_ids_all as $key=>$value){
        $final[$value] = $inventory_code_qty[$key];
    }
    

    【讨论】:

    • 对不起,最终的数组应该是这样的
    • 数组([15-3] => 1111 [16-3] => 2222 [15-4] => 3333 [16-4] => 4444)
    【解决方案6】:

    一点也不复杂,只需循环 1 个数组...

    if (count($attri_ids_all) != count($inventory_code_qty)) {
        print 'arrays lenght must be equals';
        return;
    }
    $final_array = array();
    for($i=0 ; $i<count($attri_ids_all) ; $i++) {
        $final_array[$attri_ids_all[$i]] = $inventory_code_qty[$i];
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 2016-04-27
      • 2020-03-29
      • 1970-01-01
      • 2015-06-12
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多