У меня большой массив.
В этом массиве у меня есть (среди многих других) список продуктов:
$data['product_name_0'] = '';
$data['product_desc_0'] = '';
$data['product_name_1'] = '';
$data['product_desc_1'] = '';
Этот массив предоставлен третьей стороной (поэтому я не могу это контролировать).
Не известно, сколько товаров будет в массиве.
Каким будет простой способ прохождения всех продуктов?
Я не хочу использовать цикл foreach
, поскольку он также будет проходить через все остальные элементы в (большом) массиве.
Я не могу использовать цикл for
, потому что я пока не знаю, сколько продуктов содержит массив.
Я могу сделать цикл while:
$i = 0;
while(true) { // doing this feels wrong, although it WILL end at some time (if there are no other products)
if (!array_key_exists('product_name_'.$i, $data)) {
break;
}
// do stuff with the current product
$i++;
}
Есть ли более чистый способ сделать это?
Выполнение while(true)
кажется мне глупым или нет ничего плохого в этом подходе.
А может, есть другой подход?