我正在使用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文件加载后进行的吗?我已经尝试过在循环中创建数组的许多变种,但没有一个有效。
提前感谢任何建议或提示。把头发拉过这个!
答案 0 :(得分:1)
你的两个例子做了根本不同的事情。
在第一个例子中,你有大多数语言称之为“哈希”或“地图”的东西;一系列键/值对将一个字符串映射到另一个字符串。 “Great Bittern”将成为关键,“Botaurus stellaris”将成为相应的价值。
在第二个中,你有一个更传统的数字索引数组,带有顺序键。没有什么可以阻止您按照第一个示例中的方式创建地图,只需要显式指定字符串键而不是使用array_push
。如果您的查询返回两个关联值,您可以执行类似
$data[$row['key']] = $row['value'];
您使用哪种方法取决于您的jQuery插件期望接收的数据类型。它需要键/值映射还是值数组?