我从MySQL查询创建了一个三维数组(图1)(图2)。 顶级是[Expense_ID],下一级是[Participant_ID]。每个Expense_ID可以有多个Participant_ID。
Qu 1)虽然数据全部在数组的底层重复,但有人可以告诉我如何迭代这个数组(在每个级别)来回显根据原始数据的结构(如果我可以回应它,那么我可以执行我需要做的计算)。 即在echo语句中,[Expense_ID]将从数组的顶层获取,[Participant_ID]将从第2级获取,其余3个字段将从底层获取。
Qu 2)我不知道这是否是最好的阵列结构。我用来访问这个数组的代码如图3所示。我怎么能改变它,以便第一级显示为[0] => 86和2级是[0] => 130,1 => 135 这可能更容易使用。
问2a)如果采用这种格式,我将如何遍历数组?
非常感谢任何帮助。
Array
(
[86] => Array
(
[130] => Array
(
[Expense_ID] => 86
[Expense_Description] => Item1
[Total_Amount] => 3000.00
[Expense_Payer_ID] => 134
[Participant_ID] => 130
)
[135] => Array
(
[Expense_ID] => 86
[Expense_Description] => Item1
etc.
$result = array();
while ($row = mysql_fetch_array($Exps)){
$Exp_ID = $row['Expense_ID'];
$Participant_ID = $row['Participant_ID'];
$result[$Exp_ID][$Participant_ID] = array(
'User_ID' => $row['User_ID'],
'Expense_ID' => $row['Expense_ID'],
etc.
);
}
答案 0 :(得分:2)
我不确定我理解你在问什么,但我认为一个简单的foreach loop会解决问题。
foreach ($result as $id => $participants) {
// here your Expense_ID == $id
foreach ($participants as $pid => $value) {
// here Participant_ID == $pid
//
// Total_Amount == $value['Total_Amount']
// Expense_Description == $value['Expense_Description']
// ....
}
}
希望这可以提供帮助。