$array) { foreach ($array as $key => $item) { if (!isset($out[$key])) { $out[$key] = $empty; } $out[$key][$subkey] = $item; } } return $out; } /** * Sort array by given column. */ public static function sortByColumn(array &$array, string $column, int $sortOrder = SORT_ASC, int $sortFlags = SORT_REGULAR): void { $sorter = array_column($array, $column); array_multisort($sorter, $sortOrder, $sortFlags, $array); } /** * Check whether $array contains all keys given in $keyList * * @param array $array An array * @param array $keyList A list of strings which must all be valid keys in $array */ public static function hasAllKeys(array $array, array $keyList): bool { foreach ($keyList as $key) { if (!isset($array[$key])) return false; } return true; } /** * Check if all elements in given array are primitive types, * i.e. not object, array or resource. */ public static function isOnlyPrimitiveTypes(array $array): bool { foreach ($array as $item) { if (is_array($item) || is_object($item) || is_resource($item)) return false; } return true; } /** * Force each element of given array to be of type $type. */ public static function forceType(array &$array, string $type): void { foreach ($array as &$elem) { settype($elem, $type); } } }