【问题标题】:Walkthrough Entire Multidimensional Array PHP演练整个多维数组 PHP
【发布时间】:2014-06-18 05:56:18
【问题描述】:

我有一个虚拟数组,我想订购。

我怎样才能得到以下结果

与foreach? 与而下一个() 使用递归迭代器 使用迭代器迭代器

哪个最快?

这里是数组

$files = 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',
        ),
        10 => 
        array (
        ),
      ),
      2014 => 
      array (
        '02' => 
        array (
        ),
      ),
      2015 => 'de.php',
    ),
  ),
  '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',
);

预期结果

$expected = array (
  0 => 'do-update.php',
  1 => 'sitemap.xml',
  2 => 'sitemap.xml.gz',
  3 => 'test.php',
  4 => 'wp-config.php',
  5 => 'wp-content/',
  6 => 'wp-content/uploads/',
  7 => 'wp-content/uploads/2013/',
  8 => 'wp-content/uploads/2013/05/',
  9 => 'wp-content/uploads/2013/05/kabeduvarkad-1024x768.jpg',
  10 => 'wp-content/uploads/2013/05/kabeduvarkad-150x150.jpg',
  11 => 'wp-content/uploads/2013/05/kabeduvarkad-300x225.jpg',
  12 => 'wp-content/uploads/2013/05/kabeduvarkad-940x198.jpg',
  13 => 'wp-content/uploads/2013/05/kabeduvarkad.jpg',
  14 => '...'
);

【问题讨论】:

    标签: php arrays recursion multidimensional-array iteration


    【解决方案1】:

    array_walk_recursive 是你要找的。​​p>

    示例(未测试):

    $expected = [];
    
    array_walk_recursive($your_array, function($item, $key) {
        // push item on to $expected
        $expected[] = $item;
    });
    

    Working example

    【讨论】:

    • 哦,是的,完全错过了这个要求。您可能需要编写一个 foreach 循环,并在需要时使用 is_array() 进行递归。
    猜你喜欢
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2022-01-07
    • 2013-03-04
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多