【问题标题】:How to merge 2 arrays, 1 being the key and the other being the value in php?如何合并 2 个数组,1 个是键,另一个是 php 中的值?
【发布时间】:2015-09-01 07:08:00
【问题描述】:

我要数组:

$arr1 = [
    'name' => 'Person Name',
    'surname' => 'Person Surname',
];

$arr2 = [
    'name' => 'John',
    'surname' => 'Doe',
];

我想让 arr1 的值成为 arr2 的数组键:

$arr = [
    'Person Name' => 'John',
    'Person Surname' => 'Doe',
];

还请注意,任何数组都可以按任何顺序排列,例如第一个数组名称然后是姓氏,第二个数组是姓氏然后是名字。 任何帮助,将不胜感激。谢谢

我一直在寻找一种更简单的方法,而不必遍历数组并创建另一个。结果如下:

ksort($arr1);
ksort($arr2);
array_combine(array_values($arr1), array_values(array_intersect_key($arr2, $arr1)));

【问题讨论】:

    标签: php arrays associative-array


    【解决方案1】:

    使用foreach

       $arr3 = [];
       foreach($arr1 as $key => $val){
         $arr3[$val] = $arr2[$key];
       }
       print_r($arr3);
    

    【讨论】:

      【解决方案2】:

      您可以轻松实现:

      $new_array = array();
      foreach((array) $arr1 as $index=>$key)
      {
          $new_array[$key] = $arr2[$index];
      }
      

      $key 是第一个数组的键,$arr2[$index] 是第二个数组的值

      【讨论】:

      • (array) $arr1 带来了什么?
      • (array) 用于类型转换
      • 我知道,但是既然你已经知道$arr1 是一个数组,为什么还要在这里使用它呢?
      猜你喜欢
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多