PHP 无法使用 array_walk() 打印数组中的所有键名
PHP Can't print all keys name in array with array_walk()
我的图库文件夹结构如下:
/YEAR/MONTH/DAY/FILE
然后,我要把它们打印在我的网站上。我有一个函数可以将所有文件放入一个大数组中,结构如下:
Array
(
[2017] => Array
(
[01] => Array
(
[01] => Array
(
[0] => yo.jpg
)
)
)
[2016] => Array
(
[02] => Array
(
[01] => Array
(
[0] => yo.jpg
)
)
[01] => Array
(
[03] => Array
(
[0] => timed-photos10.jpg
)
[01] => Array
(
[0] => yo.jpg
)
)
)
)
然后,我创建了一个打印此图像的新功能,我需要让它们的路径读取所有数组键。
这是我的函数:
// ...
array_walk($mediaList, array($this, 'generateMedia'));
public function generateMedia(&$value, $key)
{
if(is_array($value))
{
echo $key . "/";
array_walk($value, array($this, 'generateMedia'));
}
else
{
echo $value . "<br>";
}
}
当一个数组超过 1 个数组时就会出现问题。
我得到的结果是下一个:
2017/01/01/yo.jpg
2016/02/01/yo.jpg
01/03/timed-photos10.jpg
01/yo.jpg
如你所见,第一条和第二条记录是可以的,但是第三条和第四条不正确,因为这些元素有多个数组。
我一直在尝试不同的方法,但我无法解决它。
我能做什么?
谢谢!
还没有测试您的代码,但这会起作用:
foreach ($mediaList as $year => $months) {
foreach ($months as $month => $days) {
foreach ($days as $day => $files) {
foreach ($files as $key => $file) {
echo $year . '/' . $month . '/' . $day . '/' . $file;
}
}
}
}
我的图库文件夹结构如下:
/YEAR/MONTH/DAY/FILE
然后,我要把它们打印在我的网站上。我有一个函数可以将所有文件放入一个大数组中,结构如下:
Array
(
[2017] => Array
(
[01] => Array
(
[01] => Array
(
[0] => yo.jpg
)
)
)
[2016] => Array
(
[02] => Array
(
[01] => Array
(
[0] => yo.jpg
)
)
[01] => Array
(
[03] => Array
(
[0] => timed-photos10.jpg
)
[01] => Array
(
[0] => yo.jpg
)
)
)
)
然后,我创建了一个打印此图像的新功能,我需要让它们的路径读取所有数组键。
这是我的函数:
// ...
array_walk($mediaList, array($this, 'generateMedia'));
public function generateMedia(&$value, $key)
{
if(is_array($value))
{
echo $key . "/";
array_walk($value, array($this, 'generateMedia'));
}
else
{
echo $value . "<br>";
}
}
当一个数组超过 1 个数组时就会出现问题。
我得到的结果是下一个:
2017/01/01/yo.jpg
2016/02/01/yo.jpg
01/03/timed-photos10.jpg
01/yo.jpg
如你所见,第一条和第二条记录是可以的,但是第三条和第四条不正确,因为这些元素有多个数组。
我一直在尝试不同的方法,但我无法解决它。
我能做什么?
谢谢!
还没有测试您的代码,但这会起作用:
foreach ($mediaList as $year => $months) {
foreach ($months as $month => $days) {
foreach ($days as $day => $files) {
foreach ($files as $key => $file) {
echo $year . '/' . $month . '/' . $day . '/' . $file;
}
}
}
}