PHP - 将多维数组转换为字符串?

14

我正在开发一个小型的ajax应用程序,需要查看后台生成的值是否符合预期。请求返回的值可以是相当复杂的多维数组,有没有办法将其转换为字符串,以便可以通过警报框显示?

还有其他查看这些值的方式吗?

欢迎任何建议。

谢谢。

8个回答

30

var_export 函数的输出结果可以保存到变量中: $a = array(1, 2, array("a", "b", "c")); $b = var_export($a, true); echo $b; - ken

7
如果你想用JavaScript来展示它,我建议使用json_encode()。其他的都已经被knittl的回答覆盖了。

3
我在开发一些Ajax应用程序。在火狐浏览器中,我使用一个名为JSON视图的“插件”。然后,我的所有项目都有一个功能...
function test_array($array) {
    header("Content-Type: application/json");
    echo json_encode($array);
    exit();
}

每当我想查看输出结果时,只需输入test_array($something)即可显示结果。
如下所示:screenshot 现在调试变得轻而易举了。
PS. 我知道这个问题很老,我并没有真正回答原作者的问题,但它可能对其他人有用。

2
<script type="text/javascript">
alert(<?=print_r($array)?>);
</script>

1
这是一段关于PHP的简单回答:

Here is a simple answer in PHP:

function implode_recur($separator, $arrayvar) {
    $output = "";
    foreach ($arrayvar as $av)
    if (is_array ($av)) 
        $out .= implode_recur($separator, $av); // Recursive array 
    else                   
        $out .= $separator.$av;

    return $out;<br>
}

$result = implode_recur(">>",$variable);

这里有几个拼写错误...在implode_recur函数中,对implode_r的引用应该改为implode_recur。同时将两个$out实例更改为$output。这也会在数组中的第一个元素之前添加分隔符字符串...">>a>>b>>",这可能并不是所有情况下都需要的。 - user2782001
这个可以运行。只需要将“$out”变量更新为“$output”。 - Darren Cooney

1
我发现这个函数很有用:
function array2str($array, $pre = '', $pad = '', $sep = ', ')
{
    $str = '';
    if(is_array($array)) {
        if(count($array)) {
            foreach($array as $v) {
                $str .= $pre.$v.$pad.$sep;
            }
            $str = substr($str, 0, -strlen($sep));
        }
    } else {
        $str .= $pre.$array.$pad;
    }

    return $str;
}

从这个地址开始: http://blog.perplexedlabs.com/2008/02/04/php-array-to-string/


-1

implode 命令将数组转换为字符串。


9
对于单个数组,这样做是可以的,但对于多维数组来说不能直接使用。您需要遍历每个数组。 - Eruant

-3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接