为两个阵列中的每个循环嵌套,其中第一个循环的行向下一个循环发出信号



我的主要目标是用php/css/javascript制作一个可折叠的表(我想我已经排序了(,但我有点困惑如何在另一个循环(可能是while循环?(中运行for each循环,使其脱离第二个循环。基本上,我在一个数组中有数据,可以使用第一个数组中的一个值从第二个数组中具有相同值的行中获取值。像这样的东西;

Category 1
- Book Name 1 - Author 3 - Date 1
- Book Name 2 - Author 3 - Date 3
- Book Name 4 - Author 2 - Date 4
- Book Name 7 - Author 2 - Date 3
Category 2
- Book Name 3 - Author 1 - Date 2
- Book Name 5 - Author 3 - Date 1
- Book Name 8 - Author 1 - Date 5
- Book Name 9 - Author 5 - Date 1

我的第一个数组有基本信息;

([0] => Array [Category]=>Category 1 [subscribers]=>13 [reads]=>4)
([1] => Array [Category]=>Category 2 [subscribers]=>13 [reads]=>4)

我的第二个数组是这样设置的:

([0] => Array [Category]=>Category 1 [Name]=>Book Name 1 [Author]=>Author 3[Date]=>Date 1)
([1] => Array [Category]=>Category 1 [Name]=>Book Name 2 [Author]=>Author 3[Date]=>Date 3)
([3] => Array [Category]=>Category 2 [Name]=>Book Name 3 [Author]=>Author 1[Date]=>Date 2)
etc...

我可以调用的共同因素是类别,所以如果我在第一个while循环中将其设置为变量,这样的东西会起作用吗?

foreach (array1['category'] as $item){
$category = array1['category']
while(array2['category'] = $category){
//do stuff
}
}

FWIW我试图让我的问题尽可能通用,这样其他人就可以更容易地使用它们来适应他们的代码。

使用foreach循环,而不是while

echo "<ul>";
foreach ($array1 as $item1) {
$category = $item1['Category'];
echo "<li>$category<ul>";
foreach ($array2 as $item2) {
if ($item2['Category'] == $category) {
echo "<li>{$item2['Name']} - {$item2['Author']} - {$item2['Date']}</li>";
}
}
echo "</ul></li>";
}
echo "</ul>";

最新更新