2009-11-19 20 views
7

Pracuję nad małą aplikacją ajax i muszę sprawdzić, czy wartości generowane w tle są zgodne z oczekiwaniami. Wartość zwrócona przez quest może być dość złożoną tablicą wielowymiarową, czy istnieje sposób przekonwertowania tego na ciąg znaków, aby można było go wyświetlić za pomocą alertu?PHP - Konwertuj tablicę wielowymiarową na ciąg?

Czy istnieje inny sposób postrzegania tych wartości?

Wszelkie porady są mile widziane.

Dzięki.

Odpowiedz

24

print_r, var_dump lub var_export są dobrymi kandydatami. podczas kodowania aplikacji ajaxowej możesz również spojrzeć na json_encode.

+0

wyjście var_export mogą być zapisywane do zmiennej: $ a = tablica (1, 2, tablica ("a", "b", "c")); $ b = var_export ($ a, true); echo $ b; – ken

4

Jeśli chcesz pokazać to z javascript, polecam json_encode(), wszystko inne zostało pokryte przez odpowiedź Knittla.

0

Komenda implode zwraca tablicę jako ciąg znaków.

+6

To jest dobre dla pojedynczej macierzy, ale nie działa po wyjęciu z pudełka z wielowymiarowymi tablicami. Będziesz musiał przechodzić przez każdą z tablic. – Eruant

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

Znalazłem tę funkcję przydatne:

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

z tego adresu: http://blog.perplexedlabs.com/2008/02/04/php-array-to-string/

0

pracuję na pęczek ajax aplikacji. W FireFox mam "dodatek" o nazwie JSON view

wtedy wszystkie moje projekty mają funkcję

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

więc kiedy chcę zobaczyć, co wyjście jest po prostu pójść test_array($something) i pokazuje mi wyniki.

screenshot

jest zrobione debugowania breaze teraz

PS. wiem to Q jest stara i nie jestem naprawdę odbieram origional Plakaty Q ale może być przydatne dla kogoś innego aswell

0

Oto prosta odpowiedź w 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

kilka literówek tutaj ... wewnątrz implodu_recur, odniesienie do implode_r powinno być implode_recur. Również zmienić dwa wystąpienia $ out na $ output. Spowoduje to również dodanie ciągu separatora przed pierwszym elementem tablicy ... ">> >> b >>", co może nie być pożądane we wszystkich przypadkach. – user2782001

+0

Wielkie dzięki @ user2782001. Poprawiłem to. – kachmi

Powiązane problemy