У меня есть массив $ qwe2, из которого мне нужно сделать 2 отдельных массива. Один, который будет содержать не числовые значения в этом примере, мама, сестра и массив с числовыми значениями 11dad 13brother.
$qwe = " mom 11dad sister 13brother ";
$qwe0 = ucwords(strtolower($qwe));
$qwe1 = preg_replace('/\s+/', ' ',$qwe);
$qwe7 = trim($qwe1);
$qwe2 = explode(' ',$qwe7);
var_dump($qwe2);
Вот как это выглядит:
array (size=4)
0 => string 'mom' (length=3)
1 => string '11dad' (length=5)
2 => string 'sister' (length=6)
3 => string '13brother' (length=9)
Все эти вещи также необходимы, но мне удалось сделать это легко. Я не понимаю часть ниже.
Желаемый результат: $asd = array("mom, sister");
и $zxc = array("11dad, 13brother");
Также у меня есть строка $doyou = "Do you like?"
который мне нужно объединить с новым массивом $asd
который приведет к: Do you like mom?, Do you like sister?
Заранее спасибо!
Используйте PHP array_filter()
с некоторыми пользовательскими функциями, которые проверяют номера в строке:
$asd = array_filter($qwe2, 'hasNumbers');
$zxc = array_filter($qwe2, 'hasNoNumbers');
function hasNumbers($string)
{
return strcspn($string, '0123456789') != strlen($string);
}
function hasNoNumbers($string)
{
return strcspn($string, '0123456789') == strlen($string);
}
Тогда array_map()
может помочь вам заменить строку:
echo implode(', ', array_map('myStringReplace', $asd));
function myStringReplace($string)
{
return str_replace('?', $string, 'Do you like ?');
}