2009-11-19 51 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