通过 PHP 中的嵌套 foreach 循环加载数组


Load Array via nested foreach loops in PHP?

我正在尝试生成一个如下所示的数组:

Array
(
  [Album1] => '<img src="album1_thumb1.jpg">'
  [Album1] => '<img src="album1_thumb2.jpg">'
  [Album2] => '<img src="album2_thumb1.jpg">'
  [Album2] => '<img src="album2_thumb2.jpg">'
)

现在我有两个嵌套的 foreach 循环,如下所示:

$subfolders = glob($directory);
foreach($subfolders as $subfolder) {
    $photos = glob($subfolder.'/*.[Jj][Pp][Gg]');
    foreach($photos as $photo) {
        $thumbnail = $subfolder.'/thumbs/'.$photoname[0].'_thumb.jpg';
        $thumb = '<img src="'.$thumbnail.'" class="thumb_image">';
        $folderthumbs[$subfolder] .= $thumb;
    }
}

但是,这并不能完全满足我的需求,因为它基本上创建了一个如下所示的数组:

Array
(
  [Album1] => '<img src="album1_thumb1.jpg"><img src="album1_thumb2.jpg">'
  [Album2] => '<img src="album2_thumb1.jpg"><img src="album2_thumb2.jpg">'
)

我该如何纠正此问题?

最终,我想做的是让每个专辑中的一个随机缩略图在页面下方进一步回响......如果有人能详细说明如何做到这一点,我将不胜感激,尽管如果我能让数组按照我想要的方式工作,那么我可能会弄清楚如何做到这一点(我知道我需要使用 array_rand() )。

谢谢!

PHP 中的数组实际上是键和值之间的映射。密钥必须是唯一的。因此你不能有

  [Album1] => '<img src="album1_thumb1.jpg">'
  [Album1] => '<img src="album1_thumb2.jpg">'

您需要考虑另一种数据结构来满足您的需求