当我尝试生成数组时,如下所示:
$files_array = array(
'name' => array(),
'path' => array()
);
然后为它们分配值:
$files_array['name'][] = $fileinfo->getFilename();
$files_array['path'][] = $pathname;
var_dump()
函数向我返回一个带有数字键而不是"name"和"path"的数组,如下所示:
array(2) { [0]=> array(0) { } [1]=> array(0) { } }
阵列有什么问题?我已经尝试了几种方法来做到这一点,但没有一种给我想要的数组。
编辑:具有相同代码的填充数组转储:
array(2) { [0]=> array(3) { [0]=> string(44) "./upload/4//lol/Nuovo documento di testo.TXT" [1]=> string(51) "./upload/4//lol/blue_bokeh_4-wallpaper-1366x768.jpg" [2]=> string(29) "./upload/4//lol/menny €.txt" } [1]=> array(3) { [0]=> string(28) "Nuovo documento di testo.TXT" [1]=> string(35) "blue_bokeh_4-wallpaper-1366x768.jpg" [2]=> string(13) "menny €.txt" } }
编辑:我的完整代码
$files_array = array(
'name' => array(),
'path' => array()
);
$fileinfos = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootpath)
);
foreach ($fileinfos as $pathname => $fileinfo) {
if (!$fileinfo->isFile())
continue;
$files_array['name'][] = $fileinfo->getFilename();
$files_array['path'][] = $pathname;
}
这就是它的工作原理:
<?php
$files_array = array();
$i = 0;
$files_array[$i]['name'] = $fileinfo->getFilename();
$files_array[$i]['path'] = $pathname;
$i++;
结果输出将如下所示:
array (size=2)
0 =>
array (size=2)
'name' => string 'file' (length=4)
'path' => string '/foo/' (length=5)
1 =>
array (size=2)
'name' => string 'file2' (length=5)
'path' => string '/bar/' (length=5)
我建议阅读关于数组的 php 手册。以下是一些示例。
//1
$files_array = array();
$files_array['name'] = array();
$files_array['path'] = array();
//2
$files_array = array(
'name' => [],
'path' => []
);