【问题标题】:Indexed/numerical array to an associative array with PHP索引/数字数组到 PHP 的关联数组
【发布时间】:2012-03-18 15:46:38
【问题描述】:

无论如何,一个索引数组说['1' => 'dave, '2' => 'ryan', '3' => 'mike', '4' => 'sam']可以变成一个关联数组。在这种情况下是['dave' => 'ryan', 'mike' => 'sam']

显然,在上下文和我给出的示例中,它没有多大意义,但它会很有帮助,只是很容易知道。

除非我完全错过了一个明显的答案,否则我只能在 Google 或这里找到相反的方法(关联 -> 索引)。

【问题讨论】:

  • PHP 中的所有数组都是关联的。只是有时候,关键是一个线性递增的整数序列……

标签: php arrays associative indexed


【解决方案1】:

对于您的示例,这是我能想到的最简单的方法:

$arr = array('1' => 'dave', '2' => 'ryan', '3' => 'mike', '4' => 'sam');
$result = array();
$key = null;

foreach(array_keys($arr) as $k) {
    $v = $arr[$k];

    if($key === null) {
        $key = $v;
    } else {
        $result[$key] = $v;
        $key = null;
    }
}

Here's a demo.

【讨论】:

    【解决方案2】:
    $array = array('1' => 'dave', '2' => 'ryan', '3' => 'mike', '4' => 'sam');
    $result = array();
    for($i = 1; $i <= count($array); $i += 2) {
      $result[$array[$i]] = $array[$i+1];
    }
    

    输出

    var_dump($result);
    array(2) {
      ["dave"]=>
      string(4) "ryan"
      ["mike"]=>
      string(3) "sam"
    }
    

    【讨论】:

      猜你喜欢
      • 2018-11-16
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多