我有一个用户的数据库表,我有两个字段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
}
答案 0 :(得分:7)
您已将第二个参数OCI_ASSOC
传递给oci_fetch_array()
,它只会获取关联数组。
如果将该参数更改为OCI_BOTH
,它将返回数字和关联数组。
OCI_BOTH
是默认值。所以,即使你可以把那个参数放空。
更改
while (($result = oci_fetch_array($data, OCI_ASSOC)) != false) {
要
while (($result = oci_fetch_array($data, OCI_BOTH)) != false) {
OR To(默认为OCI_BOTH
):
while (($result = oci_fetch_array($data)) != false) {
在这里阅读:
答案 1 :(得分: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]];
}
答案 2 :(得分:3)
这适合我。
while (($result = oci_fetch_array($data, OCI_NUM)) != false){}