2012-06-14 51 views
1

我有存儲在會話檢查並在陣列中改變的值

我循環通過所述數據,以便多陣列,以改變被設置爲「1」的值,並將其設置爲「0」

但由於某種原因,即使它找到了價值,它也不會改變它。

這是我有:

Array (
    [0] => 1 
    [1] => 0 
    [2] => admin_user 
    [8] => 1 
    [3] => 2 
    [4] => Array (
     [7] => Array ( 
      [0] => User1 
      [1] => 1 
      [2] => 1 
      [3] => w.jpg 
      [4] => 1 
      [5] => 1 
      [6] => 500 
      [7] => 50 
      [8] => 3000 
     ) 
     [1] => Array ( 
      [0] => User2 
      [1] => 1 
      [2] => 3 
      [3] => d.jpg 
      [4] => 1 
      [5] => 0 
      [6] => 200 
      [7] => 85 
      [8] => 5000 
     ) 
    ) 
) 

所以在PHP我想在位置4.

改變位置5陣列中的值這是我做到了:

foreach($_SESSION['player_data'][4] as $key){ 
    if($key[5] == 1){ 
     $_SESSION['player_data'][4][$key][5] = 0; 
     break; 
    } 
} 

但它不會將其設置爲0,則保持爲1的煩人:(我要去哪裏錯了?

+0

'$ key'不是你的鑰匙,它是一個值。做foreach($ _ SESSION ['player_data'] [4]作爲$ key => $ value)'而不是 –

+0

這需要首先進行基本的調試 - 執行'error_reporting(〜0); ini_set('display_errors',1);'在腳本的開頭。此外,你應該[啓用錯誤記錄](http://www.cyberciti.biz/tips/php-howto-turn-on-error-log-file.html),並按照錯誤日誌 – hakre

+0

該foreach,如果檢查'$ _SESSION [ 'player_data'] [4] [5]'。你可以設置$ _SESSION ['player_data'] [4] [$ key] [5]'。 – jedwards

回答

4

查nge到:

foreach($_SESSION['player_data'][4] as $key => $value){  
    if($value[5] == 1){ 
     $_SESSION['player_data'][4][$key][5] = 0; 
     break; 
    } 
} 
+0

優秀的這已經解決了這個問題,我對所有這些鍵和值感到困惑!感謝您清理它! – Sir