PHP-删除一个数组层
我有一个简单的PHP函数,可以根据唯一的ID从数据库中获取信息:PHP-删除一个数组层,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个简单的PHP函数,可以根据唯一的ID从数据库中获取信息: function oracleGetGata($query, $id="id") { global $conn; $results = array(); $sql = OCI_Parse($conn, $query); OCI_Execute($sql); while ( false!==($row=oci_fetch_assoc($sql)) ) { $results[
function oracleGetGata($query, $id="id") {
global $conn;
$results = array();
$sql = OCI_Parse($conn, $query);
OCI_Execute($sql);
while ( false!==($row=oci_fetch_assoc($sql)) ) {
$results[ $row[$id] ] = $row;
}
return $results;
}
因此,例如$array=oracleGetData('select*fromtable')
将返回:
[1] => Array
(
[Title] => Title 1
[Description] => Description 1
)
[2] => Array
(
[Title] => Title 2
[Description] => Description 2
)
但是,如果我只想返回一条记录,$array=oracleGetData('select*from table where id=1')
则返回如下数据:
[] => Array
(
[Title] => Title 1
[Description] => Description 1
)
我不仅不确定如何引用它(没有任何数组标识),我还想以某种方式更改我的函数,这样如果它只返回一条记录,它将只是一个简单的一维数组
我已经研究了常用的PHP数组函数,但找不到任何有用的方法,也找不到识别数组深度的简单方法
非常感谢您的帮助,谢谢我认为您的脚本中有一个逻辑错误: 改变
$results[ $row[$id] ] = $row;
进入
问题是,您希望将数据库键值作为数组键值,但不知道数据库键值,因为您不知道查询是什么样子
你可以试试:
$results[$row['id']] = $row;
但这仅在所有结果都有一个名为“id”的数据库键时才起作用。我认为脚本中存在逻辑错误: 改变
$results[ $row[$id] ] = $row;
进入
问题是,您希望将数据库键值作为数组键值,但不知道数据库键值,因为您不知道查询是什么样子
你可以试试:
$results[$row['id']] = $row;
但这仅在所有结果都有一个名为“id”的数据库键时才起作用。使用:
然后您将得到一个单一阵列:
Array
(
[Title] => Title 1
[Description] => Description 1
)
而不是嵌入在另一个阵列中的阵列:
Array
(
[] => Array
(
[Title] => Title 1
[Description] => Description 1
)
}
使用:
然后您将得到一个单一阵列:
Array
(
[Title] => Title 1
[Description] => Description 1
)
而不是嵌入在另一个阵列中的阵列:
Array
(
[] => Array
(
[Title] => Title 1
[Description] => Description 1
)
}
在函数签名中传递$id,但在循环中使用$row[$id],为什么?也许错误就在那里 如果您希望在结果集中使用序列id,则不需要使用$id,您可以使用array_push()函数 或
在函数签名中传递$id,但在循环中使用$row[$id],为什么?也许错误就在那里 如果您希望在结果集中使用序列id,则不需要使用$id,您可以使用array_push()函数 或
谢谢你,对于我试图实现的bow,这没关系,但它会弄乱我之前的所有代码,因为数组只是随机生成的,而不是由ids生成的。谢谢你,对于我试图实现的bow,这没关系,但是它会弄乱我之前的所有代码,因为数组只是随机生成的,不是由IDThis生成,而是完美地工作,谢谢你-将尝试将其与一些代码集成,如果只有一条记录,那么这些代码可以工作。谢谢你-将尝试将其与一些代码集成,如果只有一条记录,那么这些代码可以工作