如何通过索引方式访问PHP中的数组?

5

我有一个用户数据库表,其中有两个字段USER_ID和USER_DESCRIPTION,如果我运行下面的代码,我会得到一个以数组形式表示的结果。

Array ( [USER_ID] => 1 [USER_DESCRIPTION] => TAB ) 

但我希望按照索引0、1的方式访问这些值。如何实现呢?

while (($result = oci_fetch_array($data, OCI_ASSOC)) != false) {
    echo $result['USER_ID']. ' - ' .$result['USER_DESCRIPTION']; //This works
    echo $result[0]. ' - ' .$result[1]; //This is how i want to access the values
}

看一下这个:https://dev59.com/Mm445IYBdhLWcg3wnrvM - Matt
3个回答

7

您已经将第二个参数OCI_ASSOC传递给oci_fetch_array(),这会仅获取关联数组。

如果您将该参数更改为OCI_BOTH,它将返回数字和关联数组。

OCI_BOTH是默认设置。所以,您甚至可以将该参数留空。

更改:

while (($result = oci_fetch_array($data, OCI_ASSOC)) != false) {

To

while (($result = oci_fetch_array($data, OCI_BOTH)) != false) {

或者,使用 OCI_BOTH(默认值):

while (($result = oci_fetch_array($data)) != false) {

请点击以下链接查看相关内容:

http://php.net/manual/zh/function.oci-fetch-array.php


嗨@krishnamurali,如果我的答案对您有用,请将其标记为解决方案。 - Pupil

4
你可以尝试这个 -
$result= array_values($result); // Array with indexes you need

或者你可以使用另一个技巧(假设你的索引是动态的)-
$keys = array(
    0 => 'USER_ID',
    1 => 'USER_DESCRIPTION',
);

while (($result = oci_fetch_array($data, OCI_ASSOC)) != false) {
    echo $result[$keys[0]]. ' - ' .$result[$keys[1]];
}

1
你的答案太棒了,超出预期 +1。 - Pupil
以前没有使用过 oci,所以就这样做了。 :) - Sougata Bose
这就是质量。你提供了一个通用的解决方案,实际上并没有针对技术进行工作。 - Pupil

3

这个对我有用。

while (($result = oci_fetch_array($data, OCI_NUM)) != false){}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接