2013-04-02 67 views
1

此數組中刪除空格,在陣列PHP

Array ( 
    [0] => 'HOST:' 
    [1] => 'killbill' 
    [2] => 
    [3] => 
    [4] => 
    [5] => 
    [6] => 
    [7] => 
    [8] => 
    [9] => 
    [10] => 
    [11] => 'Loss%' 
    [12] => 
    [13] => 
    [14] => 'Snt' 
    [15] => 
    [16] => 
    [17] => 'Last' 
    [18] => 
    [19] => 
    [20] =>'id' 
) 

它具有使用此代碼空values.by它給出

foreach($array as $key => $subarray) { 
    $array[$key] = preg_grep('/^$/', $subarray, PREG_GREP_INVERT); 
} 

array ( 
    [0] => HOST: 
    [1] => killbill 
    [11] => Loss% 
    [14] => Snt 
    [17] => Last 
    [20] =>id 
) 

這意味着它刪除所有的空間。但它具有原始的關鍵值(比較上面的一個和下面的一個,然後可以清楚地知道我在說什麼),但我想要這樣。

array ( 
    [0] => 'HOST:' 
    [1] => 'killbill' 
    [2] => 'Loss%' 
    [3] => 'Snt' 
    [4] => 'Last' 
    [5] => 'id' 
) 

鍵值爲1,2,3,4 ....所以我怎麼能得到這個。

+4

array_filter(),而不回調將刪除空元素並保留結合性;然後將它傳遞給array_values()來重置從0 –

+0

''array_filter()''是一個很好的計劃,但請注意,你仍然可能需要一個回調(取決於你的「空」的定義),因爲沒有一個它會刪除任何虛假的值,特別是它將刪除你可能想保留的'0',因爲它看起來像你正在處理ping結果。 – DaveRandom

+0

這是一個我不得不面對@Felix Kling的答案的問題。回答4月21 '11在22:38- [鏈接] http://stackoverflow.com/questions/5750407/php-array-removing-empty-values#comment6582284_5750521 [/鏈接] –

回答

3

簡單地使用它來代替Foreach

array_values(array_filter($array)); 

,將刪除的空間,並重新排列陣列。

看看:http://codepad.org/howl3Opj

+0

感謝charlie..that隨時可以幫助我 –

+0

:D,快樂的編碼! – egig

0

試試這個功能,它會幫助你理清問題

$arr = array_map('array_values', $arr); 
1

只需使用array_filter()

$array = array_filter($array); 

,將刪除所有的空值 - 即空白,nullfalse,零。

如果您只想刪除空字符串的值並保留其他空值(例如零),則可以指定array_filter()的第二個參數,該參數允許您定義函數以指定應過濾哪些元素。

$array = array_filter($array, function($val) {return $val!=='';}); 

希望有幫助。

+0

謝謝spudley :) –

+0

@Spudley部分代碼不工作$ array = array_filter($ array,function($ val){return $ val!=='';}); ,給出錯誤解析錯誤:語法錯誤,意外T_FUNCTION –

+0

@vikastyagi - 你使用的PHP版本是什麼?此代碼需要PHP v5.3或更高版本。你給出的錯誤看起來像你試圖在PHP 5.2中運行它。 – Spudley

0

使用array_diff功能

<?php 

    $array_space = array(0,3,4,45,12,"",54,23); 

    $remove = array(""); 

    print_r(array_diff($array_space,$remove)); 

?> 

See Output here