Arrays utilities

Learn how to create a new Inphinit project.

Checks if an array is a list

Starting from PHP 8.1 to determine if an array is a list you can use the array_is_list function, for older versions of PHP you can use the Inphinit\Utility\Arrays::indexed method, the variable is passed by reference, example:

use Inphinit\Utility\Arrays; $list = [0 => 'foo', 1 => 'bar']; $assoc = [0 => 'a', 1 => 'bar', 'foo' => 'bar']; var_dump(Arrays::indexed($list)); // Returns true var_dump(Arrays::indexed($assoc)); // Returns false

Checks if an array is associative

Starting from PHP 8.1 to determine if an array is a list you can use the if (array_is_list($array) === false), for older versions of PHP you can use the Inphinit\Utility\Arrays::associative method, the variable is passed by reference, example:

$list = [0 => 'foo', 1 => 'bar']; $assoc = [0 => 'a', 1 => 'bar', 'foo' => 'bar']; var_dump(Arrays::associative($list)); // Returns false var_dump(Arrays::associative($assoc)); // Returns true

Sort recursive arrays by keys

Recursively sort an array by key in ascending order:

use Inphinit\Utility\Arrays; $multidimentional = [ 'Foo' => 1, 'bar' => 2, 'Baz' => 3, 'moo' => [ 10 => 100, 20 => 200, 30 => 300, 5 => 50, 1 => [ 'saitama' => 'one punch', 'netero' => 'human evolution', 'allmight' => 'symbol of Peace', 'meruem' => 'this is why I was born' ] ] ]; Arrays::ksort($multidimentional); // same SORT_REGULAR print_r($multidimentional); Arrays::ksort($multidimentional, SORT_NUMERIC); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_STRING); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_LOCALE_STRING); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_NATURAL); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_FLAG_CASE); print_r($multidimentional);

To sort in descending order you can set the third parameter to true, example:

use Inphinit\Utility\Arrays; Arrays::ksort($multidimentional, SORT_REGULAR, true); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_NUMERIC, true); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_STRING, true); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_LOCALE_STRING, true); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_NATURAL, true); print_r($multidimentional); Arrays::ksort($multidimentional, SORT_FLAG_CASE, true); print_r($multidimentional);

For flags details see: https://www.php.net/manual/en/function.ksort.php

Go to homepage
Star us on Github