我有一个数组,其中的一些元素填充了很多空格和'n
。我想删除这个空格并'n
.
我一直在使用以下代码,但编译器说我的代码不适用于数组。
//My code that removes white-space
$input = preg_replace( '/'s+/', ' ', $myArray);
//Sample of array with white space
$myArray = array(
'extra spaces' => '<div> </div>',
'return' => '<b>'n</b>',
)
//What I want the array to look like
$myArray = array(
'extra spaces' => '<div></div>',
'return' => '<b></b>',
)
您可以使用 foreach 循环来遍历数组中的所有元素:
foreach($myArray as $key => $val)
{
$myArray[$key]=preg_replace( '/'s+/', ' ', $value);
}
我实际上还没有检查过代码,也从来没有很好地使用正则表达式,但是假设您的替换工作正常,它应该很好。
试试这个:
// loop through each element and apply the function
foreach($myArray as $key => $value) {
$myArray[$key] = preg_replace('/'s+/', '', $value);
}
或者创建一个函数来执行此操作并使用array_walk
请注意,我用空字符串替换您的空格,而不是单个空格(就像您和其他答案所做的那样)。这样,您将完全删除空格,而不是将其替换为空格。
-
当您调用
preg_replace
时,尚未定义$myArray
。将$myArray
的定义和调用切换到preg_replace
://Sample of array with white space# $myArray = array( 'extra spaces' => '<div> </div>', 'return' => '<b>'n</b>', ) //My code that removes white-space $input = preg_replace( '/'s+/', ' ', $myArray);
-
如果你想让
'<div> </div>'
变得'<div></div>'
,你不应该用' '
代替'/'s+/'
,而应该用''
代替。 -
'n
被认为是换行符(因此'/'s+/'
匹配),只在双引号内,而不是在单引号内。将'<b>'n</b>'
更改为"<b>'n</b>"
或修复正则表达式。