2010-04-08 56 views
0

我的PL/SQL過程返回一個遊標。它總是返回數據。我獲取(oci_fetch_assoc)它並將其保存在一個數組中。如果結果被發現,數組的鍵將是字符串。如果遊標沒有找到數據,它將返回值0,因此數組的鍵將是數字。以字符串作爲鍵的數組的條件

while($data = oci_fetch_assoc($cursor)){ 
    if(!isset($data[0])){ 
     ... 
    } 
... 
... 
} 

什麼是檢查數組不僅僅是0,而是包含數據的最好方法?

感謝

+0

的實際名稱我不知道如果我在看問題的權利,isset()函數檢查如果你的數組[0]有一個附加值:S – studioromeo 2010-04-08 14:41:12

+0

對不起... 我的程序總是返回一個遊標。當我打開第一個光標時,我收集數據。在此之後,我檢查是否找到任何行。如果沒有,我會用不同的Select語句打開遊標,它總是返回0. 所以,在PHP中,我總是會得到一個有數值的數組。我的條件的目標是找出數組是否不僅僅是一個值$ array [0] = 0)。 – Kel 2010-04-08 14:55:31

回答

1

這裏是我的解決方案:

if($data != array(0 => "0")){ 

它的工作原理

0
if(!empty($data[0])) { ... } 
+0

對不起... 我的程序總是返回一個遊標。當我打開第一個光標時,我收集數據。在此之後,我檢查是否找到任何行。如果沒有,我會用不同的Select語句打開遊標,它總是返回0. 所以,在PHP中,我總是會得到一個有數值的數組。我的條件的目標是找出數組是否不僅僅是一個值$ array [0] = 0)。 – Kel 2010-04-08 14:55:13

0

您可以使用 '===',看看是否$數據[0]等於0喜歡:

if($data[0]===0) { 
    // It really is the number 0 
} 
+0

對不起... 我的程序總是返回一個遊標。當我打開第一個光標時,我收集數據。在此之後,我檢查是否找到任何行。如果沒有,我會用不同的Select語句打開遊標,它總是返回0. 所以,在PHP中,我總是會得到一個有數值的數組。我的條件的目標是找出數組是否不僅僅是一個值$ array [0] = 0)。 – Kel 2010-04-08 14:54:39

+0

好的。更新了我的答案。 – zaf 2010-04-08 15:09:27

0

oci_fetch_assoc返回一個關聯相關數組,即列名稱是數組中的索引。

嘗試其中之一:

($data['firstColumn'] === 0) 
(reset($data) === 0) 

其中「firstColumn」是第一列