通常の配列から等しいキーと値を持つ連想配列を作成します


85

私は次のような配列を持っています

$numbers = array('first', 'second', 'third');

この配列を入力として受け取り、次のような配列を返す関数が必要です。

array(
'first' => 'first',
'second' => 'second',
'third' => 'third'
)

使用できるのかしらarray_walk_recursive


うわー、あなたの答えをとても早くありがとう。最初の2つの答えはうまくいきますが、私はもう少しエレガントなものを探していました。
jimiyash 2009

回答:


172

次のarray_combineように関数を使用できます。

$numbers = array('first', 'second', 'third');
$result = array_combine($numbers, $numbers);

1
これはワンライナーに最適です。有効期限月の使用例は次のとおりです。$ months = array_combine(range(date( 'Y')、date( 'Y')+ 10)、range(date( 'Y')、date( 'Y')+ 10 ))。
axiom82 2014

4

この単純なアプローチは機能するはずです。

$new_array = array();
foreach($numbers as $n){
  $new_array[$n] = $n;
}

次のようなこともできます。

array_combine(array_values($numbers), array_values($numbers))


0

これでうまくいくはずです。

function toAssoc($array) {
    $new_array = array();
    foreach($array as $value) {
        $new_array[$value] = $value;
    }       
    return $new_array;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.