Loop through array keys php

Warning: the benchmark below is not accurate that makes its results wrong.

From my quick and dirty benchmark I did the following 50 times:

Solution 1 [worst]:

foreach [array_keys[$array] as $array_key] {
  echo $array_key;
}

Size of array: 1000000

  • Min: 0.11363291740417
  • Avg: 0.11681462287903
  • Max: 0.14569497108459

Size of array: 9999999

  • Min: 1.3098199367523
  • Avg: 1.3250577354431
  • Max: 1.3673560619354

Solution 2 [middle]:

foreach [$array as $array_key => $array_value] {
  echo $array_key;
}

Size of array: 1000000

  • Min: 0.10167503356934
  • Avg: 0.10356130123138
  • Max: 0.11027193069458

Size of array: 9999999

  • Min: 1.2077870368958
  • Avg: 1.2256314325333
  • Max: 1.2829539775848

Solution 3 [best]:

$array_keys = array_keys[$array];
foreach [$array_keys as $array_key] {
  echo $array_key;
}

Size of array: 1000000

  • Min: 0.090911865234375
  • Avg: 0.092938437461853
  • Max: 0.097810983657837

Size of array: 9999999

  • Min: 1.0793349742889
  • Avg: 1.0941110134125
  • Max: 1.1402878761292

So you can see solution 3 is the quickest option if you only want to look through array keys :]

Hope this helps.

Code:



Note:

foreach does not support the ability to suppress error messages using @.

Some more examples to demonstrate usage:

Unpacking nested arrays with list[]

[PHP 5 >= 5.5.0, PHP 7, PHP 8]

It is possible to iterate over an array of arrays and unpack the nested array into loop variables by providing a list[] as the value.

For example:

The above example will output:

You can provide fewer elements in the list[] than there are in the nested array, in which case the leftover array values will be ignored:

The above example will output:

A notice will be generated if there aren't enough array elements to fill the list[]:

The above example will output:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C: 

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C: 

Sanusi Hassan

8 days ago

destructure array elements

you can unpac nested array elements using the following

Okafor Chiagozie

5 days ago

An easier way to unpack nested array elements

$array = [
    [1, 2],
    [3, 4],
];

foreach [$array as [$a, $b]] {
    echo "A: $a; B: $b\n";
}

How do I loop through an array of objects in PHP?

6 ways to loop through an array in php.
while[expression]{ // Code to be executed }.
do { // Code to be executed } while[expression];.
for [expr1; expr2; expr3] { //Code to be executed }.
array_walk[array|object &$array, callable $callback, mixed $arg = null]: bool..

How can we store values from for loop into an array in PHP?

Declare the $items array outside the loop and use $items[] to add items to the array: $items = array[]; foreach[$group_membership as $username] { $items[] = $username; } print_r[$items]; Hope it helps!!

What is foreach loop in PHP?

PHP foreach loop is utilized for looping through the values of an array. It loops over the array, and each value for the fresh array element is assigned to value, and the array pointer is progressed by one to go the following element in the array.

How do you loop through a multidimensional array in PHP?

Looping through multidimensional arrays Just as with regular, single-dimensional arrays, you can use foreach to loop through multidimensional arrays. To do this, you need to create nested foreach loops — that is, one loop inside another: The outer loop reads each element in the top-level array.

Chủ Đề