Почему код не добавляет в массив всё элементы? Привет , принимаю массив данных через POST Array
(
[type-sale] => Купля
[photo1] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[photo2] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[photo3] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[photo4] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[photo5] =>
[photo6] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[photo7] =>
)
Иногда могут приходить только по 3 или 4 фотки иногда по 7 и я решыл замутит кодик который будет проверять данные которые приходят через Post
вот мой код $nmPhoto = array('photo1','photo2','photo3','photo4','photo5','photo6','photo7');
for ($i=0;$i<=6;$i++) {
$nextName = $nmPhoto[$i];
if ($_POST[$nextName] == null) {
break 1;
}
else {
$photo [$i] =$_POST[$nextName] ;
}
}
//photo end
echo "";
print_r ($photo);
echo "";
на выводе Array
(
[0] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[1] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[2] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
[3] => https://i.mycdn.me/image?id=850624141910&t=3&plc=WEB&tkn=*Vn9W27REGyHaVAYkwX6XoqZjQs4
)
это только первый 4 ссылки , то есть он доходит до пробела и не выполняет дальше или как ?
Да прибудет с вами сила !

21 Авг 2019 в 06:32
289 +1
0
Ответы
1

Проблема в вашем коде заключается в том, что вы используете оператор break внутри цикла for, который завершает выполнение цикла сразу же после того, как условие внутри if становится истинным.

Если вы хотите, чтобы код продолжал проверять и добавлять элементы массива до тех пор, пока не встретится пустое значение, вам нужно убрать оператор break из цикла.

Измените ваш код на следующий образ:

nmPhoto=array(′photo1′,′photo2′,′photo3′,′photo4′,′photo5′,′photo6′,′photo7′);nmPhoto = array('photo1', 'photo2', 'photo3', 'photo4', 'photo5', 'photo6', 'photo7');
nmPhoto=array(photo1,photo2,photo3,photo4,photo5,photo6,photo7);
photo = array;
for ($i=0; $i<=6; $i++) {
nextName=nextName = nextName=nmPhoto[$i];
if ($_POST[$nextName] == null) {
break;
} else {
photo[]=photo[] = photo[]=_POST[$nextName];
}
}
echo "<pre>";
print_r($photo);
echo "</pre>";

Теперь код будет добавлять все элементы массива, пока не встретит пустое значение, после чего остановится.

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир