如何解决PHP数组差异-由循环与字符串逗号分隔生成
|| 我正在使用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文件加载后进行的?我已经尝试了很多在循环中创建数组的变体,但没有一个奏效。
在此先感谢您的任何建议或提示。把我的头发拉过来!
解决方法
您的两个示例做了根本不同的事情。
在第一个示例中,您拥有大多数语言称为\“ hash \”或\“ map \”的语言;将一个字符串映射到另一个字符串的一系列键/值对。 “ Great Bittern”将是关键,而“ Botaurus stellaris”将是相应的值。
在第二个中,您将获得一个更传统的带有顺序键的数字索引数组。没有什么会像第一个示例中那样阻止您创建映射,您只需要显式指定字符串键即可,而不是使用
array_push
。如果您的查询返回两个关联的值,则应执行以下操作
$data[$row[\'key\']] = $row[\'value\'];
您使用哪种方法取决于jQuery插件希望接收哪种数据。是否需要键/值映射或值数组?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。