PHP:将数组转换为字符串?

时间:2014-04-29 07:06:58

标签: php arrays debugging

我遇到了一个问题:我需要将数组转换为字符串并将其传递给函数以进行调试输出。

我无法直接使用print_r输出字符串,我需要将其与其他字符串连接,然后将其传递给函数

Google没有直接打印显示阵列的任何结果都以人类可读的方式显示。我需要一个字符串,我可以传递给另一个函数。

3 个答案:

答案 0 :(得分:4)

您可以使用print_r()这样的功能:

$myarray = ['a', 'b', 'c'];
$string = print_r($myarray, true);
echo $string;

作为第二个参数的可选布尔标志使函数返回一个字符串,而不是直接将其发送到输出。

答案 1 :(得分:0)

print_r使用可选参数设置为true以返回字符串而不是输出字符串:

$array = array('foo', 'bar', array('baz' => true, 'test' => 42));
$stringifiedArray = print_r($array, true);
/* $stringifiedArray == "
    Array
    (
        [0] => foo
        [1] => bar
        [2] => Array
            (
                [baz] => 1
                [test] => 42
            )

    )
"
*/

否则,我可以看到两种方式,但两者都不易被人类阅读:

  • json_encode

$stringifiedArray = json_encode($array, true); // $stringifiedArray == "["foo","bar",{"baz":true,"test":42}]"

  • serialize

$stringifiedArray = serialize($array, true); // $stringifiedArray == "a:3:{i:0;s:3:"foo";i:1;s:3:"bar";i:2;a:2:{s:3:"baz";b:1;s:4:"test";i:42;}}"

答案 2 :(得分:0)

您也可以尝试<?php implode(', ', $array); ?>