Ошибка Undefined index при заполнении многомерного массива, как игнорировать?

cyborg

Новичок
Ошибка Undefined index при заполнении многомерного массива, как игнорировать?
Заполняется матрица результатов из БД с целью вывода в последующем результирующей таблицы

while(условие) {
$data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']] += 1;
}

Проверять существует ли каждый вышестоящий элемент массива и создавать в случае необходимости, думаю нецелесообразно, так как PHP сам создает все, увеличится время работы только
 

cyborg

Новичок
Запрос выполняется так:
while ($row = oci_fetch_array ($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) {
}
то есть должны быть все значения $row
 

cyborg

Новичок
Это не поиск дублей, а вывод отчета, сколько раз было событие некое
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
cyborg, лучше на уровне бд посчитать попробовать
 

Активист

Активист
Команда форума
PHP:
while(условие) {
if (!isset($data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']])) {
$data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']] = 0;
}
$data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']] += 1;
}
 

Hello

Новичок
Активист, скорее всего у него
PHP:
$data = [];
while(условие) {
if ...
И ни один из 5 вложенных ключей не существует
 

cyborg

Новичок
Да, да, так и есть. Создать полностью пустой массив невозможно, так как неясно, что там будет
 

Активист

Активист
Команда форума
Это не я должен хотеть сказать, а вы знать.

Проверьте эти два кода:
PHP:
<?php 

error_reporting(E_ALL);
ini_set("display_errors", "on");

$row = array(
    "DATE" => time(),
    "COLOR" => "green",
    "LENGTH" => "1km",
    "SIZE" => "big",
    "PRICE" => "billion"
);


$data = array();

$data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']] += 1;
и

PHP:
<?php 

error_reporting(E_ALL);
ini_set("display_errors", "on");

$row = array(
    "DATE" => time(),
    "COLOR" => "green",
    "LENGTH" => "1km",
    "SIZE" => "big",
    "PRICE" => "billion"
);


$data = array();

if (!isset($data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']])) {
   
    $data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']] = 0;
}

$data[$row['DATE']][$row['COLOR']][$row['LENGTH']][$row['SIZE']][$row['PRICE']] += 1;
 
Сверху