1

この配列の場合、

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'
)

空の値があります。このコードを使用すると、

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

5 に答える 5

4

代わりにこれを使用するだけですForeach

array_values(array_filter($array));

これにより、スペースが削除され、配列が並べ替えられます。

見てください:http://codepad.org/howl3Opj

于 2013-04-02T11:55:32.430 に答える
0

array_diff関数を使用する

<?php

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

   $remove = array("");

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

?>

ここで出力を参照してください

于 2013-04-26T11:54:45.583 に答える
0

この機能を試してみると、問題を解決するのに役立ちます

$arr = array_map('array_values', $arr);
于 2013-04-02T11:54:24.137 に答える