【问题标题】:how to merge two arrays in one array based on key and values pair如何根据键值对将两个数组合并到一个数组中
【发布时间】:2016-09-27 13:07:09
【问题描述】:

我有两个数组,如下例..

 $arr1 = array("0" => "1");
 $arr2 = array("2" => "3");

我想通过合并一个数组中的所有键和另一个数组中的所有值来创建两个不同的数组。

预期输出..

$arr3 = array("0" => "2");
$arr4 = array("1" => "3");

【问题讨论】:

  • 如果你有 3 个值,你会怎么做?预期的输出应该是什么:array(A => B, C => NULL)array(A => B, C), ...?
  • 我想合并一个数组中的所有键和另一个数组中的所有值。
  • 当人们要求澄清时,只是重复你已经说过的话是没有帮助的。
  • 使用这个蹩脚的例子几乎没有任何意义。您需要提供另一个没有更多的示例。数组元素。当人们愿意帮助你而不是不费吹灰之力地期望人们为你解决整个问题时,至少要澄清问题。
  • 我删除了 CakePHP 标签。请使用与问题匹配的标签。这显然是通用的,与 CakePHP 完全无关!

标签: php arrays


【解决方案1】:

以下工作针对给出的示例。将array_combinearray_keys 一起用于$arr3reset 用于$arr4 -

//extract the keys and combine them
$arr3 = array_combine(array_keys($arr1), array_keys($arr2));

//extract the first value and combine them
$arr4 = array_combine(array(reset($arr1)), array(reset($arr2)));

【讨论】:

    【解决方案2】:

    你可以这样做,使用array_keysarray_vals

    <?
        $arr1 = array("0" => "1");
        $arr2 = array("2" => "3");
        $a1_keys = array_keys($arr1);
        $a1_vals = array_values($arr1);
        $a2_keys = array_keys($arr2);
        $a2_vals = array_values($arr2);
        $keys_merge = array();
        $vals_merge = array();
        for ($i = 0; $i < count($arr1); $i++) {
            $keys_merge[$a1_keys[$i]] = $a2_keys[$i];
            $vals_merge[$a1_vals[$i]] = $a2_vals[$i];
        }
        print_r($keys_merge);
        print_r($vals_merge);
    

    上面的脚本假定您有正确格式化的数组。

    【讨论】:

      【解决方案3】:
       $arr1 = array("0","1");
       $arr2 = array("2","3");
      
       foreach($arr1 as $key => $value){
         $arr3[$value] = $arr2[$key];
       }
      

      这就是你需要的。 注意:1)您对 $arr1 和 $arr2 的描述不正确 2)当数组长度不相等时需要更多的逻辑。

      【讨论】:

        【解决方案4】:

        或许你可以使用array_combine()

        <?php
        $a = array('green', 'red', 'yellow');
        $b = array('avocado', 'apple', 'banana');
        $c = array_combine($a, $b);
        
        print_r($c);
        ?>
        

        【讨论】:

        • 我想合并一个数组中的所有键和另一个数组中的所有值。
        猜你喜欢
        • 1970-01-01
        • 2019-02-06
        • 1970-01-01
        • 2022-12-15
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多