Search code examples
phparraysparent

PHP: Handle only parents on array


I need to do "foreach" action only for the highest parent nodes in my PHP array.

In this example I would like to get echo of the family lastnames...

$families = array(
'Brooks' => array(
    'John',
    'Ilsa',
),
'Hilberts' => array(
    'Peter',
    'Heidy',
));

foreach($families as $family){
  // do some action that will return only "Brooks,Hilbers"
  // not "Brooks,John,Ilsa,Hilbers,Peter,Heidy,Brooks,John,Ilsa,Hilberts,Peter,Heidy"
}

Is is handable, or should I define the array differently? Thank you very much for any positive answer.


Solution

  • You can simply return the key of the array (which is the family name):

    foreach($families as $key => $family){
      echo "FAMILY NAME = ".$key;
    }
    

    You can use the foreach just like ($array as $value) or like ($array as $key => $value). When the array is indexed (numerical key) the $key returns the position of the index (0, 1, 2...). When the array is associative (named keys), the $key returns the name of the index (in your example, Brooks, Hilberts, ...)

    For more information please see PHP Arrays and Foreach Manual