我遇到了一个问题:我需要将数组转换为字符串并将其传递给函数以进行调试输出。
我无法直接使用print_r
输出字符串,我需要将其与其他字符串连接,然后将其传递给函数。
Google没有直接打印显示阵列的任何结果都以人类可读的方式显示。我需要一个字符串,我可以传递给另一个函数。
答案 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); ?>