1

私は単純な配列を持っています

array( 
   array( 'id'=>5, 'something' => 2, 'dsadsa' => 'fsfsd )
   array( 'id'=>20, 'something' => 2, 'dsadsa' => 'fsfsd )
   array( 'id'=>30, 'something' => 2, 'dsadsa' => 'fsfsd )
)

正しい方法でidフィールド(または他の何か)で連想配列を作成する方法は?

array( 
   '5' => array(  'something' => 2, 'dsadsa' => 'fsfsd )
   '20' => array(  'something' => 2, 'dsadsa' => 'fsfsd )
   '30' => array(  'something' => 2, 'dsadsa' => 'fsfsd )
)
4

2 に答える 2

2

これらの線に沿った何か。

$new_array = array();
foreach ($original_array as &$slice)
    {
    $id = (string) $slice['id'];
    unset($slice['id']);
    $new_array[$id] = $slice;
    }
于 2012-07-16T08:03:25.287 に答える
1

@NikitaKuhta、いいえ。特定のキーまたは列見出しに関連付けられた 2D キー付きテーブルの値の列を返すスライス関数はありません。コールバック array_... 関数の一部を使用できますが、要素ごとにカスタム関数を実行する必要があるため、それだけの価値はありません。副作用として元の配列が破損するため、Core Xiiのソリューションは好きではありません。ここでは参照を使用しないことをお勧めします。

$new_array = array();
foreach ($original_array as $slice) {
    $id = (string) $slice['id'];
    unset($slice['id']);
    $new_array[$id] = $slice;
}
# And now you don't need the missing unset( $slice)
于 2012-07-16T09:28:01.390 に答える