【问题标题】:PHP Key and value arrange from two arrays [duplicate]PHP键和值从两个数组排列[重复]
【发布时间】:2022-10-13 07:56:08
【问题描述】:

我有两个数组,如下所示:

$arr1 = ['monday','tuesday'];
$arr2 = [['1:00','3:00'],['12:00',4:00]];

我想让$arr1 中的星期一成为$arr2 中第一个数组的键。所以我的最终结果将是:

"monday" => ['1:00','3:00'],
"tuesday" => ['1:00','3:00'],

提前致谢。

【问题讨论】:

  • 您想修改$arr2 本身还是最终结果可以是具有所需结构的新数组?

标签: php arrays


【解决方案1】:

使用array_combine

$arr3 = array_combine($arr1, $arr2);

它完全符合您的要求。

【讨论】:

  • 请不要回答十多年来一直被问和回答的基本问题。我们需要更多的贡献者来解决这些悬而未决的问题。
【解决方案2】:

这是一个简单的解决方案,它将使用所需数据填充 $result 数组:

$arr1 = ['monday','tuesday'];
$arr2 = [['1:00','3:00'],['12:00', '4:00']];
$result = [];

foreach ($arr1 as $index => $day) {
    $result[$day] = $arr2[$index]; 
}

print_r($result);

【讨论】:

    【解决方案3】:

    或者对于更大的数据,这应该更快:

    $arr1 = ['monday','tuesday'];
    $arr2 = [['1:00','3:00'],['12:00','4:00']];
    $desired_output  = array_map(
        static function($key, $val) use ($arr2)
        {
            $new[$val] = $arr2[$key];
            return $new;
        },
        array_keys($arr1), $arr1
    );
    var_dump($desired_output);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2017-04-02
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2018-11-11
      相关资源
      最近更新 更多