【数组篇】数组指定下标内容获取和数组指定下标检测是否存在 快捷函数 可用于thinkphp框架严格模式
php现在比较成熟的框架有好几个,但是都是用的严格模式,这会导致在获取不存在的数组成员时就会报错!!
诸如现在thinkphp的就会,为了解决这个问题,封装了几个函数
if (!function_exists('array_get')) {
/**
* 快捷获取数组指定键的成员 可避免php框架的严格模式下报错
* 如 $arr = ['name'=>'测试','data'=> ['a'=>'555','b'=>'6565']]; 可以 array_get('data.b', $arr);
* @param string|number $key key 支持无限级获取
* @param array $array 数组
* @param string $default 默认值
*/
function array_get($key = null, $array = [], $default = null)
{
if (is_array($array)) {
if (is_null($key)) {
$key = 0;
}
if ($pos = strpos($key, '.')) {
$key2 = mb_substr($key, 0, $pos);
$array2 = array_has($key2, $array) ? $array[$key2] : $default;
if (is_array($array2)) {
return array_get(mb_substr($key, $pos + 1), $array2);
}
return $default;
}
return array_has($key, $array) ? $array[$key] : $default;
}
return $default;
}
}
if (!function_exists('array_has')) {
/**
* 快捷检测数组指定键是否存在
* @param string $key key
* @return [type] 数组
*/
function array_has($key = null, $array = [])
{
if (is_array($array) && !is_null($key)) {
return array_key_exists($key, $array);
}
return fasle;
}
}-- 展开阅读全文 --
