PHP将数组添加到foreach中的键的多维数组中

时间:2016-12-04 00:27:40

标签: php arrays multidimensional-array foreach

我试图在foreach循环内的key处将数组添加到另一个数组。这是我的功能。这是我的功能:

    $dirs = scandir( $dir );
    $results = array( 'folders' => [] );

    foreach ( $dirs as $dir ) {

            if ( is_dir( $this::uploads_path() . '/' . $dir ) ) {
                array_push( $results['folders'], $dir );    
            } else {

                $file = array(
                    'filename' => $dir,
                    'filesize' => 1000
                );

                $results['files'][] = $file;

            }

    }

    return $results;

但是我尝试,我得到空值的键。像这样:

 'files' => 
    array (size=7)
      0 => 
        array (size=2)
          ...
      1 => 
        array (size=2)
          ...
      2 => 
        array (size=2)
          ...
      3 => 
        array (size=2)
          ...
      4 => 
        array (size=2)
          ...
      5 => 
        array (size=2)
          ...
      6 => 
        array (size=2)
          ...

我还尝试通过使用文件信息构建一个新数组并将其添加到foreach循环外的$ results来延迟添加数组。谢谢您的帮助。我喜欢解释为什么我得到空值而不仅仅是一个固定的代码示例。

1 个答案:

答案 0 :(得分:0)

请参阅Xdebug documentation for var_dump

  

Xdebug取代PHP的var_dump()函数来显示变量。 Xdebug的版本包括......并限制数组元素/对象属性的数量,最大深度和字符串长度。

如上所述,您正在使用var_dump和xdebug。它限制了其打印阵列的深度。因此,xdebug不会查看您的真实数据,而是将其截断为...(在指示size=2之后)。

您似乎可以设置xdebug.var_display_max_depth来增加深度。