簡體   English   中英

PHP數組差異-由循環與字符串逗號分隔生成

[英]PHP Array Differences - Generated by Loop vs String Comma-Separated

我正在使用jQuery Autocomplete(http://code.google.com/p/jquery-autocomplete/),並且在使用由MySQL調用生成的數組時遇到了一些問題。 使用字符串在PHP中創建的數組與在循環中創建一個數組之間有根本區別嗎?

例如,如果像示例中那樣使用字符串創建數組,則一切正常。 即:

$items = array(
    "Great Bittern" => "Botaurus stellaris",
    "Little Grebe" => "Tachybaptus ruficollis")

當我如下創建數組時,似乎無法識別該數組,或者數組中的數據不可搜索:

$items = array();
$query = mysql_query("MY QUERY");
while ($row = mysql_fetch_array($query))
{
array_push($data, $row['name']);
}

是因為MySQL調用是在包含它的php文件加載后進行的? 我已經嘗試了很多在循環中創建數組的變體,但沒有一個奏效。

在此先感謝您的任何建議或提示。 把我的頭發拉過來!

您的兩個示例做了根本不同的事情。

在第一個示例中,您擁有大多數語言所稱的“哈希”或“映射”。 一系列將一個字符串映射到另一個字符串的鍵/值對。 “ Great Bittern”將是關鍵,而“ Botaurus stellaris”將是相應的價值。

在第二個中,您將獲得一個更傳統的帶有順序鍵的數字索引數組。 沒有什么會像第一個示例中那樣阻止您創建映射,您只需要顯式指定字符串鍵,而不是使用array_push 如果您的查詢返回兩個關聯的值,則應執行以下操作

$data[$row['key']] = $row['value'];

您使用哪種方法取決於jQuery插件期望接收哪種數據。 是否需要鍵/值映射或值數組?

暫無
暫無

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

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