删除数组内的空格

时间:2013-10-17 22:56:41

标签: php

我有一个数组,其中一些元素充满了大量的空白和\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>',
)

3 个答案:

答案 0 :(得分:1)

试试这个:

// loop through each element and apply the function
foreach($myArray as $key => $value) {
    $myArray[$key] = preg_replace('/\s+/', '', $value);
}

或者创建一个执行此操作并使用array_walk

的函数

请注意,我用空字符串替换你的空格,而不是用一个空格(就像你和其他答案一样)。这样您就可以完全删除空格,而不是用空格替换它。

答案 1 :(得分:1)

您可以使用foreach循环来遍历数组中的所有元素:

foreach($myArray as $key => $val)
{
    $myArray[$key]=preg_replace( '/\s+/', ' ', $value);
}

我实际上没有检查过代码,并且一直没有使用正则表达式,但假设你的替换工作正常,它应该是好的。

答案 2 :(得分:1)

  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>"或修正正则表达式。