dongzhao1930 2016-11-29 15:06
浏览 70
已采纳

PHP使用相同的键合并两个数组

I want to achieve this kind of array using PHP.

[
  {
    "url": "https://url1.com",
    "code": "BNXl421s"
  },
  {
    "url": "https://url2.com",
    "code": "BNKpt1L2"
  },
  {
    "url": "https://url3.com",
    "code": "BMwhPRih"
  }
]

While i have these arrays :

$urls = 
  [
    "https://url1.com",
    "https://url2.com",
    "https://url3.com"
  ]

$codes= 
  [
    "BNXl421s",
    "BNKpt1L2",
    "BMwhPRih" 
  ]

I tried writing 2 foreach statements but it duplicates results since I had no idea how to achieve that.

  • 写回答

4条回答 默认 最新

  • dongluanguang4774 2016-11-29 15:13
    关注

    Here, try this ( Or the demo here ):

    function merge($array1,$array2){
        $output = [];
        for($i = 0; $i < count($array1); $i++){
            $output[$array1[$i]] = $array2[$i];
        }
        return $output;
    }
    
    
    var_dump(merge($urls,$codes));
    

    This will output an array like this

    Array(
            "https://url1.com" => "BNXl421s",
            "https://url2.com" => "BNKpt1L2",
            "https://url3.com" => "BMwhPRih"
        )
    

    To make your direct wanted result, try this:


    function merge($array1,$array2){
        $output = [];
        for($i = 0; $i < count($array1); $i++){
            $output[] = array("url" => $array1[$i], "code" => $array2[$i]);
        }
        return $output;
    }
    var_dump(merge($urls,$codes));
    

    Same idea, but this output:

    array(3) {
      [0]=>
      array(2) {
        ["url"]=>
        string(16) "https://url1.com"
        ["code"]=>
        string(8) "BNXl421s"
      }
      [1]=>
      array(2) {
        ["url"]=>
        string(16) "https://url2.com"
        ["code"]=>
        string(8) "BNKpt1L2"
      }
      [2]=>
      array(2) {
        ["url"]=>
        string(16) "https://url3.com"
        ["code"]=>
        string(8) "BMwhPRih"
      }
    }
    

    Try it out here

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog