2012-03-18 23 views
1

索引配列['1' => 'dave, '2' => 'ryan', '3' => 'mike', '4' => 'sam']が連想配列に変換できるとはどうもありますか?この場合、['dave' => 'ryan', 'mike' => 'sam']となります。PHPを使用した連想配列へのインデックス/数値配列

明らかに、文脈において、私が与えた例ではそれはあまり意味がありませんが、それは参考になると分かりやすいでしょう。

明らかな答えが完全に欠落していない限り、私はGoogle上で見つけることができますが、ここでは逆の(連想 - >インデックス付き)のやり方があります。

+2

PHPのすべての配列は連想されています。時には、キーは直線的に増加する整数シーケンスです... –

答えて

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.

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