for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace drupol\htmltag;
/**
* Class ArrayUtils
*/
class ArrayUtils
{
* Normalize a value.
*
* @param mixed $values
* The value to normalize.
* @return array
* The value normalized.
public static function normalizeValue($values)
/** @var Callable $callable */
$callable = 'self::ensureArray';
$values = array_map(
$callable,
self::ensureFlatArray((array) $values)
);
return array_reduce(
$values,
function ($carry, $item) {
return array_merge($carry, $item);
},
[]
}
* Todo.
* @param array $arr
* @return mixed[]
public static function ensureFlatArray(array $arr)
$arr,
function ($c, $a) {
return is_array($a) ?
array_merge($c, self::ensureFlatArray($a)) :
array_merge($c, [$a]);
* @param mixed $value
public static function ensureArray($value)
switch (gettype($value)) {
case 'string':
$return = explode(' ', $value);
break;
case 'array':
case 'double':
case 'integer':
$return = array((string) $value);
case 'object':
$return = array();
if (method_exists($value, '__toString')) {
case 'boolean':
case 'resource':
case 'NULL':
default:
return $return;