我试图在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来延迟添加数组。谢谢您的帮助。我喜欢解释为什么我得到空值而不仅仅是一个固定的代码示例。
答案 0 :(得分:0)
请参阅Xdebug documentation for var_dump
Xdebug取代PHP的var_dump()函数来显示变量。 Xdebug的版本包括......并限制数组元素/对象属性的数量,最大深度和字符串长度。
如上所述,您正在使用var_dump和xdebug。它限制了其打印阵列的深度。因此,xdebug不会查看您的真实数据,而是将其截断为...
(在指示size=2
之后)。
您似乎可以设置xdebug.var_display_max_depth
来增加深度。