Почему код не добавляет в массив всё элементы? Привет , принимаю массив данных через 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 ссылки , то есть он доходит до пробела и не выполняет дальше или как ? Да прибудет с вами сила !
Проблема в вашем коде заключается в том, что вы используете оператор break внутри цикла for, который завершает выполнение цикла сразу же после того, как условие внутри if становится истинным.
Если вы хотите, чтобы код продолжал проверять и добавлять элементы массива до тех пор, пока не встретится пустое значение, вам нужно убрать оператор break из цикла.
Проблема в вашем коде заключается в том, что вы используете оператор 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>";
Теперь код будет добавлять все элементы массива, пока не встретит пустое значение, после чего остановится.