Проверить массив с нулевым значением, он возвращает меня как значение

Я делаю запрос к БД, если значения существуют, а если их нет, я вставляю в БД, иначе мне нужно выдать сообщение об ошибке. Проблема в том, что массив объектов получает нулевые значения и интерпретирует их мне как значения, поэтому не может отправить сообщение. Я пробовал пустой (массив), isset (массив), count (массив), sizeof (массив), array == undefined и array.length. Ничего не работает.

Это код при создании массива:

if(....){
} else {
    while ($row = $consulta->fetch()) {
        if($row['total'] == 0) {
            $this->rowsFinded = [
                "id" => $id,
                "da" => $da,
                "la" => $la,
                "lo" => $lo,
                "op" => $op,
                "loi" => $loi
            ];
        }
    }
}

return $this->rowsFinded;

Когда я не могу найти строки, вставка в порядке. Вот что я вижу с xdebug:

if (empty($rowsFinded) || !isset($rowsFinded) || is_null($rowsFinded)) {  //$rowsFinded: {[6], [6]}{2}

Но при поиске строк результатом является массив с нулевыми значениями:

if (empty($rowsFinded) || !isset($rowsFinded) || is_null($rowsFinded)) {  //$rowsFinded: {[null], [null]}{2}

В чем проблема? Как решить эту проблему и показать сообщение о том, что эти строки существуют?

Благодарю вас!


person BrandConstantin    schedule 26.11.2020    source источник
comment
1) Излишне вызывать все эти методы в вашем условии, empty охватывает как isset, так и null. 2) Что именно должно быть $rowsFinded? Строка JSON? Массив?   -  person El_Vanja    schedule 26.11.2020
comment
Мне нужно $rowsFinded как массив. Я использовал вместе и по отдельности empty, isset и null и результат тот же.   -  person BrandConstantin    schedule 26.11.2020
comment
Я имел в виду, когда вы написали в своем вопросе //$rowsFinded: {[null], [null]}{2} - что именно представляет собой содержимое переменной, как ваш код его извлекает?   -  person El_Vanja    schedule 26.11.2020
comment
В $consulta->fetch() я добавляю в массив несовпадающие значения в sql-предложении и возвращаю это как массив с массивами. Проблема в массиве, потому что он добавляет мне массив с нулевыми значениями. // $ rowsFinded: {[null], [null]} {2} — это результат работы отладчика PHPStorm (поскольку ранее были вставлены 2 одинаковые строки). Мне нужно удалить нулевые массивы.   -  person BrandConstantin    schedule 26.11.2020
comment
Отредактируйте свой вопрос и покажите код, который выполняет выборку. Исправление должно быть применено там.   -  person El_Vanja    schedule 26.11.2020


Ответы (1)


Я заменил код этим, и он работает, поэтому он не добавляет нулевые массивы в окончательный массив:

      while ($row = $consulta->fetch()) {
            if($row['total'] == 0) {
                $temp = [
                    "id" => $id,
                    "da" => $da,
                    "la" => $la,
                    "lo" => $lo,
                    "op" => $op,
                    "loi" => $loi
                ];

                $rowsFinded[] = $temp;
            }
        }
person BrandConstantin    schedule 27.11.2020