PHP将数组键设置为该数组内的值

时间:2015-09-04 12:27:44

标签: php arrays for-loop key

我有一个看起来像(var_dump)的数组:

array (size=3)
0 => 
   array (size=8)
  'id' => string '1' (length=1)
  'user_id' => string '64' (length=2)
  'level' => string '1' (length=1)
  'score' => string '9999' (length=4)
  't1' => string '1' (length=1)
  't2' => string '0' (length=1)
  't3' => string '0' (length=1)
  'attempts' => string '1' (length=1)
1 => 
  array (size=8)
  'id' => string '2' (length=1)
  'user_id' => string '64' (length=2)
  'level' => string '2' (length=1)
  'score' => string '123456789' (length=9)
  't1' => string '1' (length=1)
  't2' => string '1' (length=1)
  't3' => string '0' (length=1)
  'attempts' => string '4' (length=1)
2 => 
  array (size=8)
  'id' => string '3' (length=1)
  'user_id' => string '64' (length=2)
  'level' => string '3' (length=1)
  'score' => string '123456789' (length=9)
  't1' => string '1' (length=1)
  't2' => string '1' (length=1)
  't3' => string '0' (length=1)
  'attempts' => string '7' (length=1)

如何将键0,1,2等更改为该数组内的级别值?

例如:

1 => 
   array (size=8)
  'id' => string '1' (length=1)
  'user_id' => string '64' (length=2)
  'level' => string '1' (length=1)
  'score' => string '9999' (length=4)
  't1' => string '1' (length=1)
  't2' => string '0' (length=1)
  't3' => string '0' (length=1)
  'attempts' => string '1' (length=1)
2 => 
  array (size=8)
  'id' => string '2' (length=1)
  'user_id' => string '64' (length=2)
  'level' => string '2' (length=1)
  'score' => string '123456789' (length=9)
  't1' => string '1' (length=1)
  't2' => string '1' (length=1)
  't3' => string '0' (length=1)
  'attempts' => string '4' (length=1)
3 => 
  array (size=8)
  'id' => string '3' (length=1)
  'user_id' => string '64' (length=2)
  'level' => string '3' (length=1)
  'score' => string '123456789' (length=9)
  't1' => string '1' (length=1)
  't2' => string '1' (length=1)
  't3' => string '0' (length=1)
  'attempts' => string '7' (length=1)

我已经尝试在forloop中重命名密钥,它不会只替换密钥,而是替换整个数组并将其留空。

由于

1 个答案:

答案 0 :(得分:0)

$arr = [ ['id'=>1], ['id'=>2],  ['id'=>3]];

$new = [];

foreach($arr as $item)  
    $new[$item['id']] = $item;

print_r($new);  

结果

Array (
    [1] => Array ( [id] => 1)
    [2] => Array ( [id] => 2)
    [3] => Array ( [id] => 3)
}