习惯了javascript中的array和object.在php中array又可以是Array也可以是Object(这里的Object 与js的object相同. 并非stdClass的Object). 但是问题来了如何判断他真正的类型.在有些时候, 我们需要它真实的类型.才能做一点事情.
目前我找到一个非常挫的方法.通过判断array头部的key是否为0, array最后一个元素的key是否为count – 1值. 并且同时判断, 他的所有key是否为数字. 缺陷在于如果加入一个数组为array(1, 2 => “c”, 10 => 6, 4=>”1″, 3). 这个时候仍然能通过.
刚刚测试了一下, 如何改动了key值. 后面会根据上面一个key值变化.测试如下:
Array ( [0] => 1 [2] => c [10] => 6 [4] => 5 [11] => 3 )
判断方法: 如果有更好的, 请留贴告诉我.
function getRealArrayType($d){ if (gettype($d) != "array"){return;} //get realtype $realType = "array"; //array / object $count = count($d); reset($d); //first element key is 0? if (key($d) != 0){ $realType = "object"; } end($d); //the last element key is (count - 1) if (key($d) != ($count - 1)){ $realType = "object"; } reset($d); while (next($d)){ $key = key($d); if (is_string($key)){ $realType = "object"; break; } } reset($d);//reset position return $realType; }