2016-06-16 4 views
1

私はこのような配列を持っている:空白のみを含む配列要素を削除するには?

$arr = array (0 => 'red', 
       1 => ' ', 
       2 => 'blue', 
       3 => '  ', 
       4 => 'green', 
       5 => ' ', 
       6 => 'white', 
       7 => ' ', 
       8 => 'black', 
       9 => '   '); 

まあ、私はちょうど空白を含むされているすべての項目(複数可)を削除しようとしています。これは期待通りの結果です:

$arr = array (0 => 'red', 
       1 => 'blue', 
       2 => 'green', 
       3 => 'white', 
       4 => 'black'); 

これらの空白の項目が空白の場合は、これを実行できます。だから私は$arr = array_filter($arr);を使うことができます。しかし、この場合、何もなく白い空白があるため、array_filter()は役に立ちません。それを行うためのアプローチはありますか?あなたはtrimを使用してarray_mapと、それだけのカップルでし

+1

http://stackoverflow.com/questions/3384058/how-do-you-strip-whitespace-from-an-array-using-php –

答えて

4

$arr = array_filter(array_map('trim', $arr)); 

これは、あなたがしたい場合は、あなただけarray_valuesを使用することができます、しかし、キーのインデックスを再作成しません:

$arr = array_values(array_filter(array_map('trim', $arr))); 
+0

ニース..ありがとうupvote – stack

2

array_filterは、コールバックを取ります関数。あなたは何でもできます。

array_filter($arr, function($v, $k) { 
    return trim($v) !== ''; 
}, ARRAY_FILTER_USE_BOTH); 

HTH

関連する問題