如何从数组中提取数值,然后将其与另一个字符串组合?

时间:2016-01-27 18:22:15

标签: php arrays

我有一个数组$ 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?

提前致谢!

1 个答案:

答案 0 :(得分:4)

使用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 ?');
}