PHP:如何按键创建关联数组?

时间:2012-07-16 08:00:44

标签: php arrays

我有简单的数组

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 )
)

2 个答案:

答案 0 :(得分:2)

沿着这些方向发展。

$new_array = array();
foreach ($original_array as &$slice)
    {
    $id = (string) $slice['id'];
    unset($slice['id']);
    $new_array[$id] = $slice;
    }

答案 1 :(得分:1)

@NikitaKuhta,不。没有切片函数返回与给定键或列标题关联的2D键控表中的值列。你可以使用一些回调数组_...函数,但你仍然需要为每个元素执行一个自定义函数,所以它不值得。我不喜欢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)