2014-04-29 244 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); ?>