JMC JMC - 1 month ago 9
PHP Question

Print the keys of an array

I could not figure out how to pass a variable number of variables into a function. I thought passing in an array and using the array keys for the variables names could replace the need to pass extra variables into the function, and it worked (I'm sure there is a better way to accomplish this, suggestions welcome). However, I can't seem to get the keys out of the array inside the function.

The array:

$parameters[day] = 1;
$parameters[month] = 8;
$parameters[year] = 2010;


Inside the function:

foreach(key($parameters) as $key)
{
print($key);
print("<br>");
}


The code inside the function retuns a warning: Invalid argument supplied for foreach(). How can I pull the keys out of the array?

Answer

You can use PHP's array_keys function to grab the keys, like so:

foreach(array_keys($parameters) as $paramName)
  echo $paramName . "<br>";

Or, you can run through the array using a special foreach which allows you to separate the key and value for every element, like so:

foreach($parameters as $paramName => $value)
  echo $paramName . "<br>";

Also, make sure that you are using a "string" (with quotes) or integer (like 1337) as your key, like so:

$parameters["day"] = 1;
$parameters["month"] = 8;
$parameters["year"] = 2010;

OR if you want to get fancier:

$parameters = array(
  "day" => 1,
  "month" => 8,
  "year" => 2010
);

Your code should look like:

$parameters = array(
  "day" => 1,
  "month" => 8,
  "year" => 2010
);
foreach($parameters as $paramName => $paramValue)
  echo $paramName . "<br>";
Comments