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 回答
1

只需使用array_filter().

$array = array_filter($array);

这将删除所有空值——即空白、、、nullfalse

如果您只想删除空字符串的值并保留其他空值(例如零),您可以为 指定第二个参数array_filter(),它允许您定义一个函数来指定应过滤哪些元素。

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

希望有帮助。

于 2013-04-02T11:58:00.317 回答
0

试试这个功能,它将帮助您解决问题

$arr = array_map('array_values', $arr);
于 2013-04-02T11:54:24.137 回答
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

一开始你需要取我给他一个名字 $arrWords 的数组

$arrWords = array_filter($arrWords, 'trim');

在我清理所有空白空间后,我将制作新的数组键

$arrWords = array_values($arrWords);
于 2019-12-01T11:00:03.613 回答