2012-01-08 4 views
0

Это мой код:Key сохраняет старое название после переименования его

foreach ($all_orders as $order){//the $all_orders array contains a number of arrays, so it's a multidimensional array 

$order["Order Rank"]=$order[0]; 
unset($order[0]); 
} 

после переименования ключа с новым ключом и когда я напечатать массив:

print_r($all_orders); 

я получил старый ключ имя (которое равно 0):

Array 
(
    [0] => Array 
     (
      [0] => 1 
      ) 

, почему это не так:

Array 
    (
     [0] => Array 
      (
       ["Order Rank"] => 1 
       ) 

Я что-то не хватает? чем раньше.

ответ

5

Вы редактируете копию элемента.

Используйте ссылки:

foreach ($all_orders as &$order) { 
    //... 
} 
1

Вы работаете с переменной $ порядка, который не является такой же, как массив. Вы хотите:

foreach ($all_orders as $key => $order){//the $all_orders array contains a number of arrays, so it's a multidimensional array 

$all_orders[$key]["Order Rank"]=$order[0]; 
unset($all_orders[$key]); 
} 
Смежные вопросы