Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-删除一个数组层_Php_Arrays_Multidimensional Array - Fatal编程技术网

PHP-删除一个数组层

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[

我有一个简单的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[ $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生成,而是完美地工作,谢谢你-将尝试将其与一些代码集成,如果只有一条记录,那么这些代码可以工作。谢谢你-将尝试将其与一些代码集成,如果只有一条记录,那么这些代码可以工作