【问题标题】:Combining the keys and values of two arrays [duplicate]组合两个数组的键和值[重复]
【发布时间】:2012-07-18 23:18:25
【问题描述】:

可能重复:
Merging PHP array, one as Keys the other as Values?

我在 PHP 中有以下两个数组,分别代表大气气体及其成分:

Array
(
    [0] => nitrogen
    [1] => argon
    [2] => oxygen
    [3] => carbon dioxide
)

Array
(
    [0] => 78
    [1] => 1
    [2] => 21
    [3] => 0
)

是否有一种优雅的方式来获取以下数组,键和值的组合:

Array
(
    "nitrogen" => 78
    "argon" => 1
    "oxygen" => 21
    "carbon dioxide" => 0
)

我能想到的方法都涉及循环,不知道是不是把它复杂化了。有没有简单的方法?

【问题讨论】:

标签: php arrays


【解决方案1】:

array_combine(),简单地说:

$new_arr = array_combine($keys,$values);

【讨论】:

    【解决方案2】:

    使用array_combine

    $key = array('nitrogen', 'argon', 'oxygen', 'carbon dioxide');
    $values = array(78, 1, 21, 0 );
    
    $return = array_combine($key, $values);
    
    print_r($return);
    

    输出:

    Array
    (
        [nitrogen] => 78
        [argon] => 1
        [oxygen] => 21
        [carbon dioxide] => 0
    )
    

    【讨论】:

      【解决方案3】:

      array_combine() 示例:

      <?php
      print_r(array_combine(Array('a','a','b'), Array(1,2,3)));
      ?>
      

      返回: 大批 ( [一] => 2 [b] => 3 )

      如果两个键相同,则第二个优先。

      【讨论】:

        【解决方案4】:

        信不信由你 - array_combine() 存在并且正是您正在寻找的东西!

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

        array_combine — 通过使用一个数组作为键和创建一个数组 另一个是因为它的价值


        示例改编自上述链接 -

        $a = array('Stack', 'Server', 'Super');
        $b = array('Overflow', 'Fault', 'User');
        $c = array_combine($a, $b);
        
        print_r($c);
        
        Array
        (
            [Stack] => Overflow
            [Server] => Fault
            [Super] => User
        )
        

        你有它 - 一个适合 trilogy 的数组。

        【讨论】:

        • 让我们看看them现在抓取我们的内容;)
        猜你喜欢
        • 2011-10-18
        • 1970-01-01
        • 2018-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        相关资源
        最近更新 更多