2009-11-19 52 views
7

我正在研究一个小的ajax应用程序,并且需要查看在后台生成的值是否是预期的。由任务返回的值可以是相当复杂的多维数组,是否有方法将其转换为字符串,以便可以使用alert来显示它?PHP - 将多维数组转换为字符串?

是否有任何其他方式看到这些值?

任何意见赞赏。

谢谢。

回答

24

print_r,var_dumpvar_export是很好的候选人。在编写ajax应用程序时,您可能还需要查看json_encode

+0

var_export的输出可以被保存到一个变量: $ a = array(1,2,array(“a”,“b”,“c”)); $ b = var_export($ a,true); echo $ b; – ken 2014-07-08 09:00:59

4

如果你想用JavaScript显示它,我会推荐json_encode(),其他所有内容都被knittl的答案所覆盖。

0

implode命令以字符串形式返回数组。

+6

这对单个数组很好,但不适用于多维数组。您需要遍历每个数组。 – Eruant 2012-10-08 15:27:39

1
<script type="text/javascript"> 
alert(<?=print_r($array)?>); 
</script> 
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/

0

我在一堆Ajax应用程序的工作。在firefox中,我有一个名为JSON视图的“插件”

然后我所有的项目都有一个功能

function test_array($array) { 
    header("Content-Type: application/json"); 
    echo json_encode($array); 
    exit(); 
} 

所以每当我想看到的输出,我只是去test_array($something)什么,它让我看到结果。

screenshot

其制作调试breaze现在

PS。知道这个Q是古老和IM没有真正回答原始的海报Q,但可能对别人有用的藏汉

0

这里是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); 
+0

这里有几个错别字...在implode_recur中,对implode_r的引用应该是implode_recur.Also将$ out的两个实例更改为$ output。这也将在数组中的第一个元素之前添加分隔符字符串...“>> a >> b >>”,这在所有情况下都可能不合需要。 – user2782001 2016-03-18 23:43:21

+0

非常感谢@ user2782001。我已纠正它。 – kachmi 2016-03-21 07:20:13