Php 如何识别结果是数组还是关联数组
实际上,结果来自mysql_query(),它有时产生数组,有时产生关联数组,如何识别它。您实际上从mysqli_query()获得一个对象,该对象可以转换为带有mysqli_fetch_assoc($mysqli_obj)的关联数组或带有mysqli_fetch_数组($mysqli_obj)的数组 但要确定变量是否为关联数组,请执行以下操作:Php 如何识别结果是数组还是关联数组,php,mysql,Php,Mysql,实际上,结果来自mysql_query(),它有时产生数组,有时产生关联数组,如何识别它。您实际上从mysqli_query()获得一个对象,该对象可以转换为带有mysqli_fetch_assoc($mysqli_obj)的关联数组或带有mysqli_fetch_数组($mysqli_obj)的数组 但要确定变量是否为关联数组,请执行以下操作: function isAssoc($obj) { if(is_object($obj)) { $array = get_obj
function isAssoc($obj) {
if(is_object($obj)) {
$array = get_object_vars($obj);
}
else {
$array = $obj;
}
return (count(array_filter(array_keys($array), 'is_string'))) ? true : false;
}
为什么需要这样做?当我输入查询“show databases”时,它会在assoc数组中出现,当输入“select语句”时,它会在数组中出现,我的问题是如何处理结果。为什么要在同一个函数中尝试这样做?有一个函数来处理show数据库,还有一个函数来处理SELECTs。这很好,但是有没有其他方法可以通过相同的函数来处理它,如果可以的话。。use pdo as mysql方法已弃用我的结果是resource_id和array_键,array_filter需要参数作为array,如果传递$results=mysqli_query()的直接结果,则会收到警告,因为您传递的是一个对象。它从来不是数组。如果您试图直接传递一个对象,我将尝试查看是否有办法容纳它。我编辑了该函数以允许它接受对象。你可以再试一次。但我真的不认为有必要这样做,因为对象永远不会包含索引作为其属性名。那么,对于这个要求,你喜欢什么呢