PHP如何从数组中的数组中提取信息?
首先,我想说的是,我在PHP方面很糟糕,但我正在尽最大努力使用它。出于某种原因,我可以从PHP中的数组中获取信息,但我无法从数组中的数组中提取信息 下面是var_转储数组的页面: 我想提取内部数组中的所有信息,但我不知道怎么做 这是到目前为止我的代码PHP如何从数组中的数组中提取信息?,php,mysql,for-loop,Php,Mysql,For Loop,首先,我想说的是,我在PHP方面很糟糕,但我正在尽最大努力使用它。出于某种原因,我可以从PHP中的数组中获取信息,但我无法从数组中的数组中提取信息 下面是var_转储数组的页面: 我想提取内部数组中的所有信息,但我不知道怎么做 这是到目前为止我的代码 <?php include_once "../config/config.php"; // Expected from the app: student_id & assignment_date $student_id = $_
<?php
include_once "../config/config.php";
// Expected from the app: student_id & assignment_date
$student_id = $_POST['student_id'];
$assignment_date = $_POST['assignment_date'];
$return=[];
$sql = "SELECT DISTINCT
s1.name AS subject,
a.id AS assignmentID,
sa.id AS subjectAssignID,
sa.content AS content,
sa.due_date AS dueDate,
a.general_teacher_note AS generalNote,
sn.note_content AS specificNote,
sub.isSigned AS isSigned
FROM student AS s
LEFT JOIN enrollment AS e ON e.id = e.student_id
LEFT JOIN classroom AS c ON c.id = e.classroom_id
LEFT JOIN assignment AS a ON c.id = a.classroom_id
LEFT JOIN submission AS sub ON a.id = sub.assignment_id
LEFT JOIN specific_notes AS sn ON a.id = sn.assignment_id
LEFT JOIN subject_assignment AS sa ON a.id = sa.assignment_id
LEFT JOIN subject_class AS sc ON sc.id = sa.subject_class_id
LEFT JOIN subject AS s1 ON s1.id = sc.subject_id
WHERE e.student_id = 2 AND a.date = '2015-04-07'";
$result = $conn->query($sql); // Execute the query
if ($result->rowCount() >= 1) // If there are data returned then do the following
{
$subject_assignments = $result->fetchAll(); // Get all the rows that are returned
var_dump($subject_assignments);
for($i = 0; $i < sizeof($subject_assignments); ++$i )
{
for($j = 0; $j < sizeof($i); ++$j )
{
/*[
['subjectAssignID' => $subject_assignments[$i][$j]['subjectAssignID'],
'subject' => $subject_assignments[$i][$j]['subject'],
'content' => $subject_assignments[$i][$j]['content'],
'dueDate' => $subject_assignments[$i][$j]['dueDate']],
['subject' => $subject_assignments[$i][$j]['subject'],
'content' => $subject_assignments[$i][$j]['content'],
'dueDate' => $subject_assignments[$i][$j]['dueDate']],
['generalNote' => $subject_assignments[$i][$j]['generalNote'],
'specificNote' => $subject_assignments[$i][$j]['specificNote'],
'assignmentID' => $subject_assignments[$i][$j]['assignmentID'],
'isDone' => $subject_assignments[$i][$j]['isDone']]
]*/
}
}
}
/*
[
[
'subjectAssignID' => '1',
'subject' => 'subjectHere',
'content' => '1',
'dueDate' => 'sdfds'
],
['subject' => 'subjectHere','content' => '1','duedate' => 'sdfds'],
],
'teacherNote' => 'Whatever',
'parentNote' => 'Note Parent'
'assignmentID' => '1'
echo json_encode($return); //Makes it a json array
} else {
echo 0;
}
*/
?>
如果有人能帮我,我将永远感激 我假设您的sql命令是正确的 我没有检查这段代码,但想法是使用嵌套的foreach循环
<?php
include_once "../config/config.php";
// Expected from the app: student_id & assignment_date
if($_POST['student_id'] && $_POST['assignment_date'])//only except the code if those conditions are true
{
$return=[];
$sql = "SELECT DISTINCT
s1.name AS subject,
a.id AS assignmentID,
sa.id AS subjectAssignID,
sa.content AS content,
sa.due_date AS dueDate,
a.general_teacher_note AS generalNote,
sn.note_content AS specificNote,
sub.isSigned AS isSigned
FROM student AS s
LEFT JOIN enrollment AS e ON e.id = e.student_id
LEFT JOIN classroom AS c ON c.id = e.classroom_id
LEFT JOIN assignment AS a ON c.id = a.classroom_id
LEFT JOIN submission AS sub ON a.id = sub.assignment_id
LEFT JOIN specific_notes AS sn ON a.id = sn.assignment_id
LEFT JOIN subject_assignment AS sa ON a.id = sa.assignment_id
LEFT JOIN subject_class AS sc ON sc.id = sa.subject_class_id
LEFT JOIN subject AS s1 ON s1.id = sc.subject_id
WHERE e.student_id = 2 AND a.date = '2015-04-07'";
$result = $conn->query($sql); // Execute the query
if ($result->rowCount() >= 1) // If there are data returned then do the following
{
$subject_assignments = $result->fetchAll(); // Get all the rows that are returned
var_dump($subject_assignments);
foreach($subject_assinments as $subject )
{
foreach($subject as $assinment )
{
//put your code here
echo $assinment;
}
}
}
希望这有帮助 上面共享的链接上的数组转储不清晰可读。你能呼应一下吗;就在上面…谢谢!这应该适用于多个条目,对吗?比如,现在我链接的页面只显示了一个“作业”,如果有更多的“作业”,那么它会把所有的作业都取出来,对吗?嗨,斯蒂科,如果这不是太多的问题,你能帮我解决最后一个小问题,并给出你上面提供的答案吗。因此,如果上面写着echo$assining
,我如何列出我需要的特定内容(比如我在OP上列出的内容),然后将它们转换为JSON,比如,我有$result=[]
,这样我就可以把所有内容放在那里,然后使用echo JSON\u encode($return)转换为JSON代码>我一直在试图找出那个部分,但我似乎无法正确理解!我所说的具体事物是指:subjectAssignID
,isSigned
,assignmentID
,subjectName
,content
,dueDate
,一般注释
,特殊注释
。如果你能给我举一个例子,我可以做剩下的。除息的
<?php
//Lets say your $result looks something like this
$result[]= array("subjectAssignID"=> 111, "isSigned"=> "yes", "assignmentID"=>222,
"subjectName"=>"subject", "content"=>"test", "dueDate"=>"April",
"generalNote"=>"general", "specificNote"=>"specific"
);
$file = file_get_contents('json.json');
unset($file);
file_put_contents('json.json', json_encode($result));
unset($result);
[{"subjectAssignID":111,"isSigned":"yes","assignmentID":222,"subjectName":"subject","content":"test","dueDate":"April","generalNote":"general","specificNote":"specific"}]