使用PHP将索引/数值数组转换为关联数组

时间:2012-03-18 15:46:39

标签: php arrays associative indexed

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

显然在上下文中,我给出的例子并没有多大意义,但知道它会很方便。

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

2 个答案:

答案 0 :(得分:1)

$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"
}

答案 1 :(得分: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.