2012-06-06 2 views
0

У меня есть функция, которая извлекает данные из базы данных Mysql, сохраняет значения в массиве и возвращает этот массив вызывающей функции.PHP - Невозможно отобразить значения в возвращаемом массиве

$stmt = $dbh->prepare("SELECT img_file_name FROM mjbox_images JOIN mjbox_posts USING (post_id) WHERE post_active = 0 AND post_id = ? "); 
     $stmt->bindParam(1,$post_id); 
     $stmt->execute(); 

     $resultarray = array(); 

     while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 

       $resultarray[] = $row; 
     } 

     return $resultarray; 

Я пытаюсь повторить вне $ значения в этом массиве, как это:

$resultarray = get_post_data($post_id); 

print_r($resultarray); 

foreach($resultarray as $key => $value){ 
    echo 'The value is: '. $value . '<br />'; 
} 

Но когда я просматриваю сайт это только эхо из «массива». Когда я печатаю_r массив, значения определенно находятся в массиве. Итак, как правильно отображать эти значения?

+0

зависит от структуры массива, петель через него, как вы делаете с Еогеаспом – Gntem

ответ

1

Замените эту строку

$resultarray[] = $row; 

с этим:

$resultarray[] = $row['img_file_name']; 
+1

Результатом его 'print_r' нормально, но результат его' 'echo' является Array'. – flowfree

+0

К сожалению, вы правы – arik

4

Имеет смысл. когда вы сохраняете $row в свой массив, вы на самом деле создаете 2-й массив. $row - это массив, хотя вы выбрали только одно значение. Если вы хотите сохранить только имя файла изображения, сохраните $row['img_file_name'] в массиве, вместо этого, если $row.

В качестве альтернативы, эхо $value['img_file_name'] вместо $value.

0
foreach($resultarray as $row){ 
    foreach($row as $key=>$value) { 
     echo 'The value is: '. $value . '<br />'; 
    } 
} 
Смежные вопросы