PHP数组差异-由循环与字符串逗号分隔生成

PHP Array Differences - Generated by Loop vs String Comma-Separated

本文关键字:字符串 分隔 循环 数组 PHP      更新时间:2023-09-26

我正在使用jQuery自动完成(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文件之后进行的吗?我已经尝试了很多在循环中创建数组的变体,但都没有成功。

提前感谢您的任何建议或提示。把我的头发从这个上面拔出来!

您的两个示例所做的事情根本不同。

在第一个例子中,您拥有大多数语言所称的"hash"或"map";将一个字符串映射到另一个字符串的一系列键/值对。"大比特"将是关键,"星龙"将是腐蚀条件的价值。

在第二个例子中,您有一个更传统的带顺序键的数字索引数组。没有什么可以阻止您像在第一个示例中那样创建映射,您只需要显式指定字符串键,而不需要使用array_push。如果您的查询返回两个相关的值,您可以执行类似的操作

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

使用哪种方法取决于jQuery插件期望接收的数据类型。它想要一个键/值映射,还是一个值数组?