Отображать результаты ошибок сначала в цикле foreach?

Как лучше всего сначала отобразить ошибки в цикле foreach? Прямо сейчас я читаю список и разделяю информацию, используя preg_match. Как я могу просмотреть результаты и сначала вывести результаты об ошибках, а затем показать остальные?

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

$mids = explode("\n", $_POST['invoiceCheck']);
foreach ($mids as $mid){
if(!empty($mid)) {
//Check for errors using mysqli
if(error) {
//Show error result
//Show error result
//Show error result
} else {
//Rest of results
}
}

ВХОД

890 hello blah
012 random blah
123 test blah
345 stack blah
567 over blah

ВЫХОД

ERROR DUPLICATE: 123 already exists with test
ERROR PARTIAL DUPLICATE: 567 already exists but with different name
890 hello blah
012 random blah
345 stack blah

Ошибка результатов исчезла, потому что они уже существуют в моей базе данных. Нужно ли им присвоить ошибку с помощью массива, а затем пересортировать этот массив, чтобы получить вывод?

0

Решение

Если все, что вы хотите сделать, это отобразить ошибки перед элементами, которые не генерируют ошибку, вы можете сделать это следующим образом:

$mids = explode("\n", $_POST['invoiceCheck']);
$noErrors = [];  //array to store items that don't generate an error

// ----- loop through all items and print any errors -----

foreach ($mids as $mid){
if(!empty($mid)) {
//Check for errors using mysqli
if(error) {
//display error
echo $errorMsg  //replace this with your error message
} else {
//add value to array to display later
$noErrors[] = $mid;
}
}
}

// ----- print any items that didn't generate an error -----

foreach ($noErrors as $item) {
//display each non-error item
echo $item;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector