Условие для массива со строкой в ​​качестве ключей - PullRequest
0 голосов
/ 08 апреля 2010

Моя процедура PL / SQL возвращает курсор. Он всегда возвращает данные. Я извлекаю (oci_fetch_assoc) и сохраняю его в массив. Если результаты были найдены, ключи массива будут строками. Если курсор не нашел данных, он вернет значение 0, поэтому ключ массива будет числовым.

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

Как лучше всего проверить, что массив не просто 0, а содержит данные?

Спасибо

Ответы [ 4 ]

1 голос
/ 08 апреля 2010

Вот мое решение:

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

и все работает

0 голосов
/ 08 апреля 2010

oci_fetch_assoc возвращает связанный массив, то есть имена столбцов являются индексами в массиве.

попробуйте один из них:

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

где 'firstColumn' - фактическое имя первого столбца

0 голосов
/ 08 апреля 2010

Вы можете использовать '===', чтобы увидеть, равен ли $ data [0] 0. Как:

if($data[0]===0) {
   // It really is the number 0
}
0 голосов
/ 08 апреля 2010
if(!empty($data[0])) { ... }
...