清除空格数组[重复]

Posted

技术标签:

【中文标题】清除空格数组[重复]【英文标题】:clear empty spaces array [duplicate] 【发布时间】:2015-12-01 18:23:18 【问题描述】:

我有这个数组,我想摆脱那些没有价值的索引,例如在 index[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] => 
        )

)

【问题讨论】:

可能是array_filter? 另外,您是要保留密钥还是转移它们?也就是说element[0][1]运行后应该是1还是2? 【参考方案1】:

这是 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;

【讨论】:

它有效,但我如何将内部值设置为 [0] 或 [1] 而不是前一个数组的值?数组 ( [0] => 数组 ( [2] => 7 [4] => 8 ) [1] => 数组 ( [2] => 9 [3] => 10 ) [2] => 数组 ( [ 1] => 11 [2] => 12)) 我刚刚更新了我的解决方案。您将使用 array_values 包装 array_filter 调用。 非常感谢!它确实奏效了! 这是在我的数组中删除 0 有没有办法避免这种情况? [0] => 数组([0] => 0 [1] => 0 [2] => 7 [3] => 0 [4] => 8 [5] => 0)@curtis1000 在不知道您想要接受的可能性范围的情况下,我很难知道最好的过滤器是什么。如果您一直在处理整数,可以将“!empty”替换为“is_int”以仅接受整数(包括零)。【参考方案2】:

你可以使用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
)

【讨论】:

我试过这个,但它对我不起作用 哦。很好 array_filter 工作,但我没有意识到你正在运行一个多维数组,因为除非你手动执行它们,否则它不会在更深的数组级别中工作。【参考方案3】:
foreach ($array as $key=>$value) 
  if ($value == '')  unset($array[$key]); 

应该可以的。

【讨论】:

以上是关于清除空格数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 memset 清除 char 数组 [重复]

[转载]C#如何清除字符串数组中的重复项

创建新数组和清除长度之间的区别[重复]

在一个数组中清除该数组的重复元素,数组不准浪费长度。

从字符数组java中“删除”重复空格

DELPHI清除TXT文件内重复字符串