繁体   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