多维数组列表打印Php

多维数组列表打印Php,php,arrays,recursion,multidimensional-array,Php,Arrays,Recursion,Multidimensional Array,我有以下带有php代码的数组 我找不到哪里弄错了 我正在尝试筛选其中一些数组结果并将其删除。当我试图列出它们时,我没有成功 array ( 0 => 'do-update.php', 1 => 'sitemap.xml', 2 => 'sitemap.xml.gz', 3 => 'wp-config.php', 'wp-content' => array ( 'uploads' => array ( 20

我有以下带有php代码的数组 我找不到哪里弄错了

我正在尝试筛选其中一些数组结果并将其删除。当我试图列出它们时,我没有成功

array (
  0 => 'do-update.php',
  1 => 'sitemap.xml',
  2 => 'sitemap.xml.gz',
  3 => 'wp-config.php',
  'wp-content' => 
  array (
    'uploads' => 
    array (
      2013 => 
      array (
        '05' => 
        array (
          0 => 'kabeduvarkad-1024x768.jpg',
          1 => 'kabeduvarkad-150x150.jpg',
          2 => 'kabeduvarkad-300x225.jpg',
          3 => 'kabeduvarkad-940x198.jpg',
          4 => 'kabeduvarkad.jpg',
          5 => 'kabeduvarkad1-1000x288.jpg',
          6 => 'kabeduvarkad1-1024x768.jpg',
          7 => 'kabeduvarkad1-150x150.jpg',
          8 => 'kabeduvarkad1-300x225.jpg',
          9 => 'kabeduvarkad1-400x300.jpg',
          10 => 'kabeduvarkad1.jpg',
          11 => 'kabeduvarkad2-1000x288.jpg',
          12 => 'kabeduvarkad2-1024x768.jpg',
          13 => 'kabeduvarkad2-150x150.jpg',
          14 => 'kabeduvarkad2-300x225.jpg',
          15 => 'kabeduvarkad2-400x300.jpg',
          16 => 'kabeduvarkad2.jpg',
        ),
        10 => 
        array (
        ),
      ),
      2014 => 
      array (
        '02' => 
        array (
        ),
      ),
    ),
  ),
  'wp-update' => 
  array (
    0 => 'wp-update.tar',
    1 => 'wp-update.tar.gz',
    2 => 'wp-update1.tar',
    3 => 'wp-update1.tar.gz',
  ),
  4 => 'wp-update.tar.gz',
)
这是我的职责

function listArrayRecursive($array_name, $ident = ''){
    $result = array();
    foreach ($array_name as $k => $v){
        if (is_array($v)){
            $result[] = listArrayRecursive($v, $ident.'/'.$k);
        }else{
            $result[] = $ident. '/' . $v . '<br>';
        }
    }
    return $result;
}
我有以下结果

Array
(
    [0] => /do-update.php<br>
    [1] => /sitemap.xml<br>
    [2] => /sitemap.xml.gz<br>
    [3] => /wp-config.php<br>
    [4] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [0] => Array
                                (
                                    [0] => /wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg<br>
                                    [1] => /wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg<br>
                                    [2] => /wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg<br>
                                    [3] => /wp-content/uploads/2013/05/kabeduvarkad-940x198.jpg<br>
                                    [4] => /wp-content/uploads/2013/05/kabeduvarkad.jpg<br>
                                    [5] => /wp-content/uploads/2013/05/kabeduvarkad1-1000x288.jpg<br>
                                    [6] => /wp-content/uploads/2013/05/kabeduvarkad1-1024x768.jpg<br>
                                    [7] => /wp-content/uploads/2013/05/kabeduvarkad1-150x150.jpg<br>
                                    [8] => /wp-content/uploads/2013/05/kabeduvarkad1-300x225.jpg<br>
                                    [9] => /wp-content/uploads/2013/05/kabeduvarkad1-400x300.jpg<br>
                                    [10] => /wp-content/uploads/2013/05/kabeduvarkad1.jpg<br>
                                    [11] => /wp-content/uploads/2013/05/kabeduvarkad2-1000x288.jpg<br>
                                    [12] => /wp-content/uploads/2013/05/kabeduvarkad2-1024x768.jpg<br>
                                    [13] => /wp-content/uploads/2013/05/kabeduvarkad2-150x150.jpg<br>
                                    [14] => /wp-content/uploads/2013/05/kabeduvarkad2-300x225.jpg<br>
                                    [15] => /wp-content/uploads/2013/05/kabeduvarkad2-400x300.jpg<br>
                                    [16] => /wp-content/uploads/2013/05/kabeduvarkad2.jpg<br>
                                )

                            [1] => Array
                                (
                                )

                        )

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

                        )

                )

        )

    [5] => Array
        (
            [0] => /wp-update/wp-update.tar<br>
            [1] => /wp-update/wp-update.tar.gz<br>
            [2] => /wp-update/wp-update1.tar<br>
            [3] => /wp-update/wp-update1.tar.gz<br>
        )

    [6] => /wp-update.tar.gz<br>
)
预期结果是

Array
(
    [0] => /do-update.php<br>
    [1] => /sitemap.xml<br>
    [2] => /sitemap.xml.gz<br>
    [3] => /wp-config.php<br>
    [4] => /wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg<br>
    [5] => /wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg<br>
    [6] => /wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg<br>
    [7] => /wp-content/uploads/2013/05/kabeduvarkad-940x198.jpg<br>
    [8] => /wp-content/uploads/2013/05/kabeduvarkad.jpg<br>
    [9] => /wp-content/uploads/2013/05/kabeduvarkad1-1000x288.jpg<br>
    [10] => /wp-content/uploads/2013/05/kabeduvarkad1-1024x768.jpg<br>
    [11] => /wp-content/uploads/2013/05/kabeduvarkad1-150x150.jpg<br>
    [12] => /wp-content/uploads/2013/05/kabeduvarkad1-300x225.jpg<br>
    [13] => /wp-content/uploads/2013/05/kabeduvarkad1-400x300.jpg<br>
    [14] => /wp-content/uploads/2013/05/kabeduvarkad1.jpg<br>
    ...
    [110] => /wp-update/wp-update.tar<br>
    [111] => /wp-update/wp-update.tar.gz<br>
    [112] => /wp-update/wp-update1.tar<br>
    [113] => /wp-update/wp-update1.tar.gz<br>
    [114] => /wp-update.tar.gz<br>
)
对于$var[]=您基本上是说您希望使用递增键向$var添加新元素。 递归函数返回一个数组。 因此,此数组被指定为数组中的新元素。 但您需要的是平面阵列

不要像这样向数组中添加数组:

if (is_array($v)){
    $result[] = listArrayRecursive($v, $ident.'/'.$k);
if (is_array($v)){
    $tmpResult = listArrayRecursive($v, $ident.'/'.$k);
    $result    = array_merge($result, $tmpResult);
<?php

// Dummy data source
$data = array(
    '/do-update.php',
    '/sitemap.xml',
    '/sitemap.xml.gz',
    '/wp-config.php',
    array(
        array(
            array(
                '/wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg',
                '/wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg',
                '/wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg<br>'
            )
        )
    )
);

// Helper function
function getFiles($data, &$fileList) {
    foreach ($data as $dataItem) {
        if (is_array($dataItem))
            getFiles($dataItem, $fileList);
        else
            $fileList[] = $dataItem;
    }
}

// Debug
echo "<b>Orignal Array</b>";
var_dump($data);
echo "<hr>";

// Helper function usage
echo "<b>Parsed Array</b>";
$fileList = array();
getFiles($data, $fileList);
var_dump($fileList);

?>
现有阵列如下所示:

if (is_array($v)){
    $result[] = listArrayRecursive($v, $ident.'/'.$k);
if (is_array($v)){
    $tmpResult = listArrayRecursive($v, $ident.'/'.$k);
    $result    = array_merge($result, $tmpResult);
<?php

// Dummy data source
$data = array(
    '/do-update.php',
    '/sitemap.xml',
    '/sitemap.xml.gz',
    '/wp-config.php',
    array(
        array(
            array(
                '/wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg',
                '/wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg',
                '/wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg<br>'
            )
        )
    )
);

// Helper function
function getFiles($data, &$fileList) {
    foreach ($data as $dataItem) {
        if (is_array($dataItem))
            getFiles($dataItem, $fileList);
        else
            $fileList[] = $dataItem;
    }
}

// Debug
echo "<b>Orignal Array</b>";
var_dump($data);
echo "<hr>";

// Helper function usage
echo "<b>Parsed Array</b>";
$fileList = array();
getFiles($data, $fileList);
var_dump($fileList);

?>

您可以看到一个工作示例。

确定将此函数用于其工作

$all=array();
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); 
 foreach($it as $v) { 
   $all[]=$v;
 } 
print_r($all);

您可以这样做:

if (is_array($v)){
    $result[] = listArrayRecursive($v, $ident.'/'.$k);
if (is_array($v)){
    $tmpResult = listArrayRecursive($v, $ident.'/'.$k);
    $result    = array_merge($result, $tmpResult);
<?php

// Dummy data source
$data = array(
    '/do-update.php',
    '/sitemap.xml',
    '/sitemap.xml.gz',
    '/wp-config.php',
    array(
        array(
            array(
                '/wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg',
                '/wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg',
                '/wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg<br>'
            )
        )
    )
);

// Helper function
function getFiles($data, &$fileList) {
    foreach ($data as $dataItem) {
        if (is_array($dataItem))
            getFiles($dataItem, $fileList);
        else
            $fileList[] = $dataItem;
    }
}

// Debug
echo "<b>Orignal Array</b>";
var_dump($data);
echo "<hr>";

// Helper function usage
echo "<b>Parsed Array</b>";
$fileList = array();
getFiles($data, $fileList);
var_dump($fileList);

?>
输出:


您试图实现此目的的代码在哪里?我已更新以获得更好的viewChange$result[]=listArrayRecursive$v,$ident.'/'.$k;to$result=array_merge$result,listArrayRecursive$v,$ident.'/'.$k;有比阵列更好的解决方案吗_merge@DenizPorsuk数组\合并有什么问题?为什么会有反对票?我的回答解释了问题是什么以及如何解决。感谢您的解释@Andresch Serh。有没有什么方法可以直接添加而不增加键呢?我不明白为什么您希望这样做,而不需要进一步解释,您也可以暂时存储递归调用的结果,并迭代该结果,将其添加到结果中。但这只不过是重新设计array_merge已经完成的工作。我不明白你为什么要这样做。@DenizPorsuk问题是数组_merge不将函数作为参数。现在它与我的编辑一起工作。我还编辑了一个eval.in链接,您可以在其中看到正在运行的解决方案。这给了我警告:array_merge:Argument 1不是第56行NULL上/tmp/execpad-5f5bf77b1210/source-5f5bf77b1210中的数组:我也喜欢这个解决方案。在哪里可以了解有关递归迭代器的更多信息