清除空格数组


clear empty spaces array

我有这个数组,我想去掉那些没有值的索引,比如在索引[0]中我想去掉[0]和[4]这样我就有了一个有3个值的数组,等等

Array
(
    [0] => Array
        (
            [0] => 
            [1] => 
            [2] => 7
            [3] => 
            [4] => 8
            [5] => 
        )
    [1] => Array
        (
            [0] => 
            [1] => 
            [2] => 9
            [3] => 10
            [4] => 
        )
    [2] => Array
        (
            [0] => 
            [1] => 11
            [2] => 12
            [3] => 
        )
)
foreach ($array as $key=>$value) {
  if ($value == '') { unset($array[$key]); }
}

应该可以了

这是array_filter的一个很好的用例。检查!empty()允许您删除空字符串和空值。

$filter_func = function($input) {
    $output = [];
    foreach ($input as $set) {
        $output[] = array_values(
            array_filter($set, function($element) {
                return !empty($element);
            })
        );
    }
    return $output;
}

您可以使用array_filter()

$my_array = array_filter($my_array);

如果你需要"重新索引"之后,你可以运行$my_array = array_values($my_array)

的例子:

$a   = array();
$a[] = '';
$a[] = 1;
$a[] = null;
$a[] = 2;
$a[] = 3;
$a = array_filter($a);
print_r($a);
输出:

Array
(
    [1] => 1
    [3] => 2
    [4] => 3
)