在php中回显/返回一个数组

Posted

技术标签:

【中文标题】在php中回显/返回一个数组【英文标题】:Echo/return an array in php 【发布时间】:2013-10-23 19:47:16 【问题描述】:

我试图从 php 文件中查询数据库,然后将结果(每行的 userLOC)返回给调用 Jquery 函数。

调用 Jquery:

$.post(url, data, function (data) 
    
        alert(data);
    )

相关PHP:

 $sql = "Select * from location";
 $result = mysql_query($sql);
 $stack = array();
 while($row = mysql_fetch_array($result))
  
     array_push($stack, $row["userLOC"]);
  
  return $stack;

问题是我无法正确返回它,如果我“echo $stack”它不起作用,它说我试图将数组转换为字符串。如果我“回显 $stack[0]”,它将正确地给我数组中的第一个结果,所以我知道这些值被正确存储(如 $stack[1] 等),但这只会发回一个值.如果我如图所示“返回 $stack”,则不会发出任何警报,因为没有回显。我将如何取回整个数组以便我可以遍历并在 jquery 端使用它们?

【问题讨论】:

【参考方案1】:

echo json_encode($stack);可以帮到你

在 jquery 端使用jQuery.parseJSON()

【讨论】:

【参考方案2】:

在 PHP 中

$foo = array();
echo $foo;

将产生文字字符串Array 作为输出。

您需要将数组转换为字符串。由于您正在处理 javascript 目标,因此使用 JSON 作为这样做的完美方式:

$foo = array('a', 'b', 'c', 'd', 'e');
echo json_encode($foo);

然后在你的 JS 代码中:

$.get(...., function (data) 
    alert(data[1]); // spits out 'b'
);

记得告诉 jquery 你期待 JSON 输出。

【讨论】:

非常感谢,如果我现在只是 alert(data),我会看到整个数组的内容,即 "["a","b","c"]" 所以数据是到达那里,但是如果我尝试引用其中一个元素,例如 alert(data[0]) 它会给出“[”,这是第一个字符。 然后它被视为一个字符串,你需要告诉 jquery 你正在获取 json,例如$.get(url, data, function, 'json');,根据文档:api.jquery.com/jQuery.get【参考方案3】:

您需要将数组转换为 JSON 对象,如下所示:return json_encode($stack);

【讨论】:

【参考方案4】:

您需要以可以通过 HTTP 传输到客户端并用于获取原始数据的方式包装(序列化)数据。 通常的容器格式是 XML 和 JSON。 JSON 非常适合在 JavaScript 中使用,因此请使用 PHP 函数 json_encode() 并回显结果。

【讨论】:

【参考方案5】:

只需将您的数组转换为 JSON 对象并将其返回给您的 JavaScript:

return json_encode($stack);

【讨论】:

【参考方案6】:

你会想要使用 JSON!

客户端:

jQuery.post(url, data, function( data ) 
    //Data is already converted from JSON
, "json");

服务器端:

return json_encode($stack);

Explanation

希望这会有所帮助!

【讨论】:

【参考方案7】:

正如其他人所说,您可能希望使用 json 之类的东西来包装输出:

echo json_encode($stack);

但是,如果您不是在寻找具有 JSON 格式复杂性的输出,您可以只使用 implode() 来输出一个逗号分隔的列表:

echo implode(',',$stack);

【讨论】:

以上是关于在php中回显/返回一个数组的主要内容,如果未能解决你的问题,请参考以下文章

如何避免在php中回显字符65279?

如何使用 php 在 WordPress 插件中回显 json 数据 [重复]

如何在 PHP 中回显或打印数组?

如何使用 PHP 从 mySQLi 查询中回显每一行?

如何在 PHP 中回显 HTML?

如何在 PHP 中回显 .html 文件的全部内容?