2011-01-20 3 views
0

Я пытаюсь напечатать многомерный массив в PHP, но я не понимаю, как это сделать.Как показать весь многомерный массив в PHP?

Вот код:

foreach ($srcs as $img64) { 

    // Vou agora apanhar a imagem e registar as suas caracteristicas 
    $image   = file_get_contents($img64); 
    $details_images = getimagesize($img64); 
    $image_type  = pathinfo($img64, PATHINFO_EXTENSION); 

    // Vou converter para base64    
    $imgbase64[] .= array(
     "base64" => base64_encode($image), 
     "image_type" => $image_type 
     ); 
} 

Если я print_r() в $imgbase64 я получил это:

Array 
(
    [0] => Array 
    [1] => Array 
    [2] => Array 
    [3] => Array 
    [4] => Array 
    [5] => Array 
    [6] => Array 
    [7] => Array 
    [8] => Array 
) 

Как я могу напечатать значения, где это массив?

Если вы можете дать мне какие-либо подсказки, будем признательны.

С наилучшими пожеланиями,

ответ

3

Использование:

$imgbase64[] = array(

Вместо:

$imgbase64[] .= array(

.= оператор конкатенации, который будет отбрасывать массив в строку, которая буквально говорит "Array".

+0

Я удивлен, что не ошибся, честно говоря. Я не уверен, что '$ imgbase64 []. = Array (' даже сделал бы –

+0

@Sam, если бы он включил error_reporting (E_ALL | E_STRICT), это вызвало бы предупреждение. –

2

Вы используете конкатенацию, где вы не должны:

$imgbase64[] .= array(
     "base64" => base64_encode($image), 
     "image_type" => $image_type 
     ); 

Вот почему это присваивая строковое значение Array для ваших элементов. Удалите период так, чтобы он был следующим:

$imgbase64[] = array(
     "base64" => base64_encode($image), 
     "image_type" => $image_type 
     ); 
+0

+1, из общей любезности. Ваш ответ так же хорош, как и мой. :) –

+0

lol, спасибо! Я и вам тоже. – webbiedave

2

Немного не по теме (но полезный совет, так вот оно).

Если вы просто хотите вывести данные для целей отладки, var_dump - лучшее решение, чем print_r, так как оно будет рекурсивно перебирать данные.

Смежные вопросы