删除数组内的空格


Remove Whitespace Inside Array

我有一个数组,其中的一些元素填充了很多空格和'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

请注意,我用空字符串替换您的空格,而不是单个空格(就像您和其他答案所做的那样)。这样,您将完全删除空格,而不是将其替换为空格。

  1. 当您调用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);
    
  2. 如果你想让'<div> </div>'变得'<div></div>',你不应该用' '代替'/'s+/',而应该用''代替。

  3. 'n被认为是换行符(因此'/'s+/'匹配),只在双引号内,而不是在单引号内。将'<b>'n</b>'更改为"<b>'n</b>"或修复正则表达式。