(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_array -- mysqli_fetch_array — 將結果集的下一列作為關聯陣列、數字陣列或兩者擷取
物件導向風格
程序風格
從結果集中擷取一列資料,並將其作為陣列返回。每次後續呼叫此函式都會返回結果集中的下一列,如果沒有更多列,則返回 null
。
除了將資料儲存在結果陣列的數字索引中之外,此函式還可以透過使用結果集的欄位名稱作為鍵,將資料儲存在關聯索引中。
如果結果的兩個或多個欄位具有相同的名稱,則最後一個欄位將優先,並覆蓋任何先前的資料。要存取具有相同名稱的多個欄位,必須使用列的數字索引版本。
注意:此函式返回的欄位名稱*區分大小寫*。
注意:此函式將 NULL 欄位設定為 PHP
null
值。
result
僅限程序風格:由 mysqli_query()、mysqli_store_result()、mysqli_use_result() 或 mysqli_stmt_get_result() 返回的 mysqli_result 物件。
mode
此選用參數是一個常數,指示應從目前列資料產生哪種類型的陣列。此參數的可能值為常數 MYSQLI_ASSOC
、MYSQLI_NUM
或 MYSQLI_BOTH
。
透過使用 MYSQLI_ASSOC
常數,此函式的行為將與 mysqli_fetch_assoc() 相同,而 MYSQLI_NUM
的行為將與 mysqli_fetch_row() 函式相同。最後一個選項 MYSQLI_BOTH
將建立一個具有兩者屬性的單個陣列。
範例 #1 mysqli_result::fetch_array() 範例
物件導向風格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3";
$result = $mysqli->query($query);
/* 數字索引陣列 */
$row = $result->fetch_array(MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);
/* 關聯式陣列 */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* 關聯式和數字索引陣列 */
$row = $result->fetch_array(MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);
程序風格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($mysqli, $query);
/* 數值索引陣列 */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);
/* 關聯式陣列 */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* 關聯式和數值索引陣列 */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);
以上範例的輸出會類似如下:
Kabul (AFG) Qandahar (AFG) Herat (AFG)