Вопрос

I am very new to PHP and hope you can help me with this.

I am fetching some data from SQL and try to create an array that I want to echo on a page.

When I echo the result from the following ($output) then this only returns the word "array" insteaed of the items that I am trying to add to it.

Can someone tell me what I am doing wrong here and provide me a short explanation as well ?

$c = "";
$i = 0;
$arr = array();
$output = ''
foreach ($objNames->names as $names) {
    $c = "<img src='images/photos/photo_" . str_replace(" ", "_", $names->member) . ".png' alt='' class='clickable flagLink trackHC' />&nbsp;" . $names->member . " &nbsp;&nbsp;";
    array_push($arr, $c);
    $i++;
}
if($i != 0) {
    $output = $arr;
}


<div id="output"><?php echo $output; ?></div>

Many thanks for any help, Mike.

Это было полезно?

Решение

You cant just echo arrays.

You have to loop through it with a foreach for example:

$c = "";
$i = 0;
$arr = array();
$output = ''
foreach ($objNames->names as $names) {
    $c = "<img src='images/photos/photo_" . str_replace(" ", "_", $names->member) . ".png' alt='' class='clickable flagLink trackHC' />&nbsp;" . $names->member . " &nbsp;&nbsp;";
    array_push($arr, $c);
    $i++;
}
if($i != 0) {
    $output = $arr;
}

foreach($output as $row) {
?>
    <div id="output"><?php echo $row; ?></div>
<?php
}

This should work for you!

Другие советы

An array must be printed using:

print_r($arrayValue)

you can keep the print value also (EDITED):

$x = print_r($arrayValue, true)

but I prefer the json way if it's for logging purposes:

echo json_encode($arrayValue)

keeping in mind every value must be json-serializable.

...

Doing a plain echo $arrayValue will always print "Array" word without any content. Yes, it's a bit unintuitive (since other languages like python don't behave like that) but it is what it is.

If you wish to just see/print the contents of your array, try this:

print_r ($output);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top