1

とにかく、インデックス付き配列['1' => 'dave, '2' => 'ryan', '3' => 'mike', '4' => 'sam']を連想配列に変えることができるということはありますか。この場合は になります['dave' => 'ryan', 'mike' => 'sam']

明らかに、コンテキストと私が示した例ではあまり意味がありませんが、知っておくと便利です。

明らかな答えが完全に欠けていない限り、Googleまたはここで見つけることができるのは、反対の方法(連想 - >索引付け)だけです。

4

2 に答える 2

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"
}
于 2012-03-18T15:49:45.490 に答える
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;
    }
}

これがデモです。

于 2012-03-18T15:50:15.813 に答える