user3632137
user3632137

Reputation: 1

My array returns array inside foreach

could someone explain me why I can not get the data from that array? My echo only returns "array". where I'm going wrong?

<?php
$people = array( 
array("name"=>"Bob","age"=>8,"colour"=>"red"), 
array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
array("name"=>"Andy","age"=>5,"colour"=>"purple")); 


foreach($people as $vperson => $person){ 

    echo $person;

} 
?>

Upvotes: 0

Views: 87

Answers (3)

Manibharathi
Manibharathi

Reputation: 945

Use this to display key and equivalent value

foreach($people as $pe)
{
  foreach($pe as $key => $person) 
  {
     echo $key.' : '.$person.' </br> ';
  }
}

Upvotes: 0

Pupil
Pupil

Reputation: 23958

Because, your are printing array with echo.

You can print the array like:

    <?php
    $people = array( 
    array("name"=>"Bob","age"=>8,"colour"=>"red"), 
    array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
    array("name"=>"Andy","age"=>5,"colour"=>"purple")); 
    foreach($people as $vperson => $person){ 
    echo '<pre>';
        print_r($person);
    echo '</pre>';


echo $name = $person['name'];
    echo $age = $person['age'];
    echo $colour = $person['colour'];
    } 

Upvotes: 0

romulos
romulos

Reputation: 268

Well as you said you have an array, your variable $person is also an array so you can't just make echo on that. You can access values by the names "age, name and colour".

Try this:

<?php
$people = array( 
array("name"=>"Bob","age"=>8,"colour"=>"red"), 
array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
array("name"=>"Andy","age"=>5,"colour"=>"purple")); 


foreach($people as $vperson => $person){ 

    echo $name = $person['name'];
    echo $age = $person['age'];
    echo $colour = $person['colour'];
    echo "<br>";

} 
?>

Upvotes: 2

Related Questions