2014-04-29 194 views
-1

我有一个问题:我需要将数组转换为字符串并将其传递给调试输出的函数。PHP:将数组转换为字符串?

我不能直接输出字符串与print_r,我需要加入它与其他一些字符串和传递给函数

谷歌没有带来任何以人类可读的方式显示数组而不直接打印它们的结果。我需要一个字符串,我可以传递给另一个函数。

+0

尝试破灭()和show你也有望与代码 –

+0

输出请张贴样本串;你期望的输出和你迄今试过的代码来实现结果。 –

+0

你可以使用'$ str = print_r($ someData,true)' –

回答

4

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

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

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

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;}}"

0

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