2009-11-19 59 views
7

Tôi đang làm việc trên một ứng dụng ajax nhỏ và cần phải xem các giá trị được tạo ra trong nền là những gì được mong đợi. Giá trị được trả về bởi nhiệm vụ có thể là một mảng đa chiều phức tạp, có cách nào để chuyển đổi chuỗi này thành một chuỗi sao cho nó có thể được hiển thị bằng cảnh báo không?PHP - Chuyển đổi mảng đa chiều thành chuỗi?

Có cách nào khác để xem các giá trị này không?

Bất kỳ lời khuyên nào được đánh giá cao.

Cảm ơn.

Trả lời

24

print_r, var_dump hoặc var_export là những ứng cử viên tốt. trong khi mã hóa một ứng dụng ajax, bạn cũng có thể muốn xem json_encode.

+0

sản lượng var_export thể được lưu vào một biến: $ a = mảng (1, 2, mảng ("a", "b", "c")); $ b = var_export ($ a, true); echo $ b; – ken

4

Nếu bạn muốn hiển thị nó với javascript, tôi sẽ giới thiệu json_encode(), mọi thứ khác đã được đề cập đến bởi câu trả lời của knittl.

0

Lệnh implode trả về mảng dưới dạng chuỗi.

+6

Điều này là tốt cho một mảng duy nhất, nhưng không làm việc ra khỏi hộp với mảng đa chiều. Bạn sẽ cần lặp qua từng mảng. – Eruant

1
<script type="text/javascript"> 
alert(<?=print_r($array)?>); 
</script> 
1

tôi thấy chức năng này rất hữu ích:

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

từ địa chỉ này: http://blog.perplexedlabs.com/2008/02/04/php-array-to-string/

0

tôi làm việc trên một loạt các ứng dụng ajax. trong firefox tôi có một "add-on" được gọi là JSON xem

sau đó tất cả các dự án của tôi có một hàm

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

nên bất cứ khi nào tôi muốn xem những gì đầu ra là tôi chỉ cần đi test_array($something) và nó cho thấy tôi kết quả.

screenshot

nó đã gỡ một breaze tại

PS. biết Q này là cổ xưa và im không thực sự trả lời các áp phích origional Q nhưng có thể có ích cho người khác là tốt

0

Đây là một câu trả lời đơn giản trong 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

một số lỗi chính tả ở đây ... trong implode_recur, tham chiếu đến implode_r phải là implode_recur.Also thay đổi hai trường hợp $ ra thành $ output. Điều này cũng sẽ thêm chuỗi phân cách trước phần tử đầu tiên trong mảng ... ">> a >> b >>" có thể không được mong muốn trong mọi trường hợp. – user2782001

+0

Rất cám ơn @ user2782001. Tôi đã sửa chữa nó. – kachmi

Các vấn đề liên quan