PHP:删除多维数组中的空数组字符串

Mig*_*Mas 6 php arrays string multidimensional-array

我有这个数组:

$aryMain = array(array('hello','bye'), array('',''),array('','')); 
Run Code Online (Sandbox Code Playgroud)

它是通过读取csv文件而形成的,数组('','')是文件末尾的空行.

我该如何删除它们?

我试过了:

$aryMain = array_filter($aryMain);  
Run Code Online (Sandbox Code Playgroud)

但它不起作用:(

非常感谢!

小智 17

添加到Rikesh的答案:

<?php
$aryMain = array(array('hello','bye'), array('',''),array('','')); 
$aryMain = array_filter(array_map('array_filter', $aryMain));
print_r($aryMain);

?>
Run Code Online (Sandbox Code Playgroud)

将他的代码粘贴到另一个array_filter中将自己摆脱整个数组.

Array
(
    [0] => Array
        (
            [0] => hello
            [1] => bye
        )

)
Run Code Online (Sandbox Code Playgroud)

相比:

$aryMain = array_map('array_filter', $aryMain);

Array
(
    [0] => Array
        (
            [0] => hello
            [1] => bye
        )

    [1] => Array
        (
        )

    [2] => Array
        (
        )

)
Run Code Online (Sandbox Code Playgroud)


Rik*_*esh 10

array_map与array_filter一起使用,

$array = array_filter(array_map('array_filter', $array));
Run Code Online (Sandbox Code Playgroud)

或者只是创建一个array_filter_recursive功能

function array_filter_recursive($input) 
{ 
   foreach ($input as &$value) 
    { 
      if (is_array($value)) 
      { 
         $value = array_filter_recursive($value); 
      } 
   }     
   return array_filter($input); 
} 
Run Code Online (Sandbox Code Playgroud)

DEMO.

注意:这将删除包含'0'的项目(即带有数字零的字符串).只需传递'strlen'第二个参数即可0