Mohamed
Mohamed

Reputation: 57

getting each value of an associative array

i need help building a function that display an associative array and i want to insert them in a variable. for example i have this assoc array :

$array[ID] = 1;
$array[Name] = John;
$array[age] = 12;

$array[ID]=2;
$array[Name] = Mary;
$array[age] = 14;

i need to make the ID,name,age as variables so i can display it in a table. when i loop through them each time it fills the table row. it has to be each one a variable coz i need to insert them into a gird and display the grid .. where then i can update delete the info

Upvotes: 0

Views: 174

Answers (6)

edorian
edorian

Reputation: 38961

I'd use one of the answers provided but if you really really want to (again, i don't see a reason but what the hell do i know) use extract()

<?php
$people = array(
    array('id' => 1, 'name' => 'John', 'age' => 12),
    array('id' => 2, 'name' => 'Mary', 'age' => 14) 
);
foreach($people as $row) {
    extract($row);
    echo "Id: $id, Name: $name, Age: $age\n";
}
//Prints:
//Id: 1, Name: John, Age: 12
//Id: 2, Name: Mary, Age: 14

~

Upvotes: 1

sprain
sprain

Reputation: 7672

Currently it looks as if you are overwriting the values of the first person with the values of the second person.

What you're looking for is an array structure with more than one dimension, like this:

$people = array(
   1 => array('name' => 'John', 'age' => 12),
   2 => array('name' => 'Mary', 'age' => 14)
);

Then it'll be easy to print out table rows:

foreach($people as $id => $person){
   print '<tr><td>'.$id.'</td><td>'.$person['name'].'</td><td>'.$person['age'].'</td></tr>';
}//foreach

Hope this helps!

Upvotes: 0

Gordon
Gordon

Reputation: 316969

You can do:

foreach($array as $user) {
    list($age, $name, $id) = array_values($user);
    echo $id, $name, $age;
}

But like others already pointed out, this is pointless because you can much more easily read the values directly from the array through their associative keys. You also wouldnt have to run array_values to assign the array values before being able to assign them with list.

Upvotes: 0

sjobe
sjobe

Reputation: 2837

foreach($array as $key => $value){
  echo $key. ' = '.$value.";
}

would give you

ID = 1 Name = John age = 12

etc

Also be sure to do $array["ID"] = ... instead of $array[ID] = ...

Upvotes: 0

Codler
Codler

Reputation: 11256

Im not sure what you want to do exactly, but maybe it is the extract function you are looking for.

Upvotes: 0

Mchl
Mchl

Reputation: 62387

 foreach($array as $row) {
    echo $row['ID'],$row['Name'],$row['age'];
 }

Upvotes: 0

Related Questions