当我尝试生成数组时,就像这样:
$files_array = array(
'name' => array(),
'path' => array()
);
然后为它们分配值:
$files_array['name'][] = $fileinfo->getFilename();
$files_array['path'][] = $pathname;
var_dump()
函数返回一个带数字键的数组而不是" name"和"路径",像这样:
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;
}
答案 0 :(得分:-1)
这就是它的工作原理:
<?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)
答案 1 :(得分:-1)
我建议阅读关于数组的php手册。以下是一些例子。
//1
$files_array = array();
$files_array['name'] = array();
$files_array['path'] = array();
//2
$files_array = array(
'name' => [],
'path' => []
);