在PHP中使用foreach从JSON回显数据
基本上我有两个JSON文件。一个JSON文件包含一组问题,第二个JSON文件包含用户答案。我想做的是从一个json文件中回显问题,并在div中从另一个文件中回显答案 我试着把一个foreach放在一个foreach中。这在一定程度上是可行的,但它会对每个答案重复多次问题在PHP中使用foreach从JSON回显数据,php,json,Php,Json,基本上我有两个JSON文件。一个JSON文件包含一组问题,第二个JSON文件包含用户答案。我想做的是从一个json文件中回显问题,并在div中从另一个文件中回显答案 我试着把一个foreach放在一个foreach中。这在一定程度上是可行的,但它会对每个答案重复多次问题 <?php $questions = "../induction.json"; $contents = file_get_contents($questions,0,null,null); $qArray = json_d
<?php
$questions = "../induction.json";
$contents = file_get_contents($questions,0,null,null);
$qArray = json_decode($contents, JSON_PRETTY_PRINT);
$answers = $user."_induction.json";
$contentsA = file_get_contents($answers,0,null,null);
$qArrayA = json_decode($contentsA, JSON_PRETTY_PRINT);
?>
<div role="tabpanel" class="tab-pane fade" id="messages_with_icon_title">
<b>Quiz</b>
<?php
$num = 0;
foreach($qArray as $key => $value){
foreach($qArrayA as $key2 => $value2){
?>
<form method="POST">
<div class="row clearfix">
<div class="col-lg-4 col-md-4 col-sm-6 col-xs-12">
<div class="card">
<div class="header">
<h2><?php echo $value['question']; ?></h2>
</div>
<div class="body">
<?php
echo $value2;
?>
</div>
</div>
</div>
</div>
<?php }
} ?>
<input type="submit" class="btn btn-success waves-effect" name="submit" value="Submit" />
</form>
</div>
测验
结果如下:这就是循环的外观。注意,我将
标记从循环中拉出,因为它不应该在循环中
<form method="POST">
<?php
for ($i = 0; $i < count($qArray); $i++)
{
?>
<div class="row clearfix">
<div class="col-lg-4 col-md-4 col-sm-6 col-xs-12">
<div class="card">
<div class="header">
<h2><?php echo $qArray[$i]; ?></h2>
</div> <!-- .header -->
<div class="body">
<?php echo $qArrayA[$i]; ?>
</div> <!-- .body -->
</div> <!-- .card -->
</div> <!-- .col-lg-4 -->
</div> <!-- .row -->
<?php } ?>
<input type="submit" class="btn btn-success waves-effect" name="submit" value="Submit" />
</form>
我猜,$value['question']中有一个输入错误代码>,它应该是$value2['question']
因为您可以使用$value2
回显正文内容。嵌套的foreach似乎是错误的<代码>foreach($qArrayA as$key2=>$
请发布正确的代码。@scaisEdge修复了这个问题,不知道为什么它会切断它。你不需要嵌套循环。它的作用是打印出第一个问题,然后循环所有答案。然后下一个问题显示所有答案,依此类推。你只需要一个带计数器的循环。 echo$question[$i]
…echo$answer[$i]