PHP 数组对象判断
在php开发中,json_encode和json_decode都是常用的方法,但是我们传入json到php中进行解析,不管是传入数组还是传入对象,在php中解析出来都是array类型,所以在做某些操作时我们可能要根据传入的json类型做不同操作就比较麻烦了,所以有了这个方法。
这样的json我们叫它数组
[1,2,3]
这样的json我们叫它对象
{"a":1,"b":2,"c":3}
但是通过getType()方法拿到的都是array类型
$a = [0, 1, 2, 3];
$b = ['a' => 0, 'b' => 1, 'c' => 3];
$c = [['a' => 1], ['b' => 2], 'c' => 3];
echo gettype($a) . ' data:' . json_encode($a) . PHP_EOL; // array
echo gettype($b) . ' data:' . json_encode($b) . PHP_EOL; // array
echo gettype($c) . ' data:' . json_encode($c) . PHP_EOL; // array
通过对数组索引的判断,如果是数组,那么索引一定是 0-(n-1) ,所以我们可以通过这样推断它是array还是object类型
/**
* 判断是否对象型数组
* @desc 例如$a = [1,2,3]; $b={'a'=>1,'b'=>2} 在php中解析出来都叫做数组,实则$b应该是对象,但是在php的getType()方法返回的类型都是array
* @param array $array
* @return bool
* @author pengzhongyu
* @datetime 2024-11-01
*/
function isArrayObject(array $array): bool
{
return array_keys($array) !== range(0, count($array) - 1);
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: