2011-07-22 68 views
1

得到的值。這是我的PHP代碼不能從一個PHP數組

echo '<pre>'; 
print_r($weekdays); echo '<br/>'; 

foreach ($weekdays as $key => $day) { 

    print_r($day); echo '<br/>'; 
    echo 'key - '. $key; echo '<br/>'; 
    echo 'val - '. $day['val']; die;  
} 

這也是本

Array 
(
[sunday] => Array 
    (
     ['val'] => 1 
     ['from'] => 6:00:00 
     ['to'] => 6:00:00 
    ) 

[monday] => Array 
    (
     ['val'] => 1 
     ['from'] => 6:00:00 
     ['to'] => 6:00:00 
    ) 

[tuesday] => Array 
    (
     ['from'] => 7:00:00 
     ['to'] => 0:00:00 
    ) 

[wednesday] => Array 
    (
     ['from'] => 0:00:00 
     ['to'] => 0:00:00 
    ) 

[thuesday] => Array 
    (
     ['from'] => 0:00:00 
     ['to'] => 0:00:00 
    ) 

[friday] => Array 
    (
     ['from'] => 0:00:00 
     ['to'] => 0:00:00 
    ) 

[saturday] => Array 
    (
     ['from'] => 0:00:00 
     ['to'] => 0:00:00 
    ) 
) 

Array 
(
['val'] => 1 
['from'] => 6:00:00 
['to'] => 6:00:00 
) 

key - sunday 
val - 

結果的問題是在我的foreach我試圖讓$day['val'],但表示沒有。也嘗試使用$ day-> val。當我print_r($day)我得到

Array 
(
['val'] => 1 
['from'] => 6:00:00 
['to'] => 6:00:00 
) 

請幫助我。

+1

當您獲得$ day ['val']時會發生什麼? – Jeune

回答

4

問題是關鍵不是val它的'val'(帶引號)。

echo 'val - '. $day["'val'"]; 

將工作。

1

看來您的密鑰實際上是'val',而不是val

1

我想這將是最好的,以確保您不使用撇號命名數組鍵。這可能會在將來混淆你,或者在這些代碼上工作的人。

你的print_r應該是這樣的:

創建數組
Array ( 
    [sunday] => Array 
     (
      [val] => 1 
      [from] => 6:00:00 
      [to] => 6:00:00 
     ) 

正確的代碼,你將被設置。