簡體   English   中英

PHP中的二維數組

[英]two-dimensional arrays in php

好的,這是我的代碼:

$months = Array();

$months = ['January'=>array(), 'February'=>array(), 'March'=>array(), 'April'=>array(), 'May'=>array(), 'June'=>array(), 'July'=>array(), 'August'=>array(), 'September'=>array(), 
                        'October'=>array(), 'November'=>array(), 'December'=>array() ]; 
// Connect to MySQL
if ( !( $database = mysql_connect( "localhost", "root", "" ) ) )                      
      die( "Could not connect to database </body></html>" );

// open Events database
if ( !mysql_select_db( "Events", $database ) )
      die( "Could not open Events database </body></html>" );

for($i = 0; $i < 12; $i++) {

    $result = mysql_query("SELECT * FROM posted_events WHERE Month_ = '$months[$i]' ") 
                    or die ('Error updating database because: '.mysql_error());

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $months[$i] =  $row['DayNum']; 
    }


}

我不知道您能否在這里得到我想做的事情,但我還是會解釋。 我正在嘗試訪問我的數據庫並存儲與它們各自月份對應的日期,並將它們存儲在數組中,但是它不起作用:/

我是這個二維數組的新手,所以我不知道我的語法是否錯誤,或者我想實現的目標是不可能的。 感謝您的幫助。

您的月陣列是一個關聯數組,字符串作為鍵,因此您可以使用foreach遍歷它不是增量的for 還要記住,不要在每次迭代時都將附加到數組的內容覆蓋掉。

foreach($months as $month => $arr) {

    $result = mysql_query("SELECT * FROM posted_events WHERE Month_ = '$month' ") 
                    or die ('Error updating database because: '.mysql_error());

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $months[$month][] =  $row['DayNum']; 
        //             ^^ appending not overwriting
    }
}

旁注:

  • mysql_*已過時,建議升級到PDO或MySQLi。
  • or die語法不受歡迎,因為在進入生產環境時很難更改它。 trigger_error()類的東西會更好,它會以靜默方式寫入錯誤日志。

編輯:輸出數組中的日期:

foreach($months as $month => $arr)
{
    echo $month . '<br />';
    foreach($arr as $day)
    {
        echo $day . '<br />';
    }
}

上面的代碼將簡單地回顯月份名稱,然后是其下方的所有日期,並在下個月重復。

$ months [$ i]將以“ Array”結尾,因為它是一個數組

要獲得月份名稱,您應該輸入:

$ month_names = array_keys($ months);

在$ months變量之后

然后用它

$ result = mysql_query(“ SELECT * FROM posted_events WHERE Month_ ='$ month_names [$ i]'”)

歡呼:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM