Вы можете использовать методы, которые включают preg_match_all()
и preg_grep()
, но эти функции используют регулярное выражение и, как правило, менее эффективны, чем функции, не основанные на регулярном выражении.
Если вы всегдаимеют ту же структуру данных, которую вы предоставили в своих выборочных массивах, тогда у меня есть решение с одной строкой, которое использует array_filter () , implode () и str_replace () для предоставления желаемой строки для каждого массива ошибок.
$arr1[0]="SOAP-ENV:Server Market 1";
$arr1[1]="";
$arr1[2]=0;
$arr1[3]="|Error : User Name and Password is Failed";
echo $str1=str_replace("|","",implode(' ',array_filter($arr1))); // declare and echo
echo "<br>";
$arr2[0]="SOAP-ENV:Server Market 2";
$arr2[1]="";
$arr2[2]=0;
$arr2[3]="|Error : Failed Mysql query()";
echo $str2=str_replace("|","",implode(' ',array_filter($arr2))); // declare and echo
Это выдаст:
SOAP-ENV:Server Market 1 Error : User Name and Password is Failed
SOAP-ENV:Server Market 2 Error : Failed Mysql query()
Вы увидите, что если вы передадите массив из 4 элементов в мой 3-Метод function, он сначала удалит пустые / нулевые / нулевые значения, затем объединит оставшиеся элементы, используя пробел в качестве клея, в строку, в которой будут удалены все символы конвейера.
Если вы собираетесь это сделатьЛюбая конкатенация / комбинация / слияние этих данных, я рекомендую делать это после того, как будет сгенерирована нужная строка.
Если ваш реальный случай имеет более разнообразные значения, и мой ответ не соответствует сложности вашего проектаПоэтому, пожалуйста, обновите ваш вопрос с помощью примера ввода, который вызывает проблемы, и я настрою свой метод.