mirror of
https://github.com/php-curl-class/php-curl-class.git
synced 2026-08-22 10:21:58 +00:00
169 lines
3.7 KiB
PHP
169 lines
3.7 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace Curl;
|
|
|
|
use Curl\CaseInsensitiveArray;
|
|
|
|
class ArrayUtil
|
|
{
|
|
/**
|
|
* Is Array Assoc
|
|
*
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public static function isArrayAssoc($array)
|
|
{
|
|
return (
|
|
$array instanceof CaseInsensitiveArray ||
|
|
(bool)count(array_filter(array_keys($array), 'is_string'))
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Is Array Assoc
|
|
*
|
|
* @deprecated Use ArrayUtil::isArrayAssoc().
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public static function is_array_assoc($array)
|
|
{
|
|
return static::isArrayAssoc($array);
|
|
}
|
|
|
|
/**
|
|
* Is Array Multidim
|
|
*
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public static function isArrayMultidim($array)
|
|
{
|
|
if (!is_array($array)) {
|
|
return false;
|
|
}
|
|
|
|
return (bool)count(array_filter($array, 'is_array'));
|
|
}
|
|
|
|
/**
|
|
* Is Array Multidim
|
|
*
|
|
* @deprecated Use ArrayUtil::isArrayMultidim().
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public static function is_array_multidim($array)
|
|
{
|
|
return static::isArrayMultidim($array);
|
|
}
|
|
|
|
/**
|
|
* Array Flatten Multidim
|
|
*
|
|
* @access public
|
|
* @param $array
|
|
* @param $prefix
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function arrayFlattenMultidim($array, $prefix = false)
|
|
{
|
|
$return = [];
|
|
if (is_array($array) || is_object($array)) {
|
|
if (empty($array)) {
|
|
$return[$prefix] = '';
|
|
} else {
|
|
foreach ($array as $key => $value) {
|
|
if (is_scalar($value)) {
|
|
if ($prefix) {
|
|
$return[$prefix . '[' . $key . ']'] = $value;
|
|
} else {
|
|
$return[$key] = $value;
|
|
}
|
|
} else {
|
|
if ($value instanceof \CURLFile) {
|
|
$return[$key] = $value;
|
|
} else {
|
|
$return = array_merge(
|
|
$return,
|
|
self::arrayFlattenMultidim(
|
|
$value,
|
|
$prefix ? $prefix . '[' . $key . ']' : $key
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} elseif ($array === null) {
|
|
$return[$prefix] = $array;
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* Array Flatten Multidim
|
|
*
|
|
* @deprecated Use ArrayUtil::arrayFlattenMultidim().
|
|
* @access public
|
|
* @param $array
|
|
* @param $prefix
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function array_flatten_multidim($array, $prefix = false)
|
|
{
|
|
return static::arrayFlattenMultidim($array, $prefix);
|
|
}
|
|
|
|
/**
|
|
* Array Random
|
|
*
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public static function arrayRandom($array)
|
|
{
|
|
return $array[static::arrayRandomIndex($array)];
|
|
}
|
|
|
|
/**
|
|
* Array Random Index
|
|
*
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return integer
|
|
*/
|
|
public static function arrayRandomIndex($array)
|
|
{
|
|
return mt_rand(0, count($array) - 1);
|
|
}
|
|
|
|
/**
|
|
* Array Random
|
|
*
|
|
* @deprecated Use ArrayUtil::arrayRandom().
|
|
* @access public
|
|
* @param $array
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public static function array_random($array)
|
|
{
|
|
return static::arrayRandom($array);
|
|
}
|
|
}
|