gpt4 book ai didi

php - 使用数组值匹配两个 foreach 循环

转载 作者:行者123 更新时间:2023-12-04 05:04:58 25 4
gpt4 key购买 nike

我有两个 foreach 循环。第一个从 Wordpress 中获取大量问题,第二个应该获取多个答案。如果不涉及问题的一些随机化,这是直截了当的,这会让人感到困惑。

这是两个没有被随机化的 foreach 循环。

<?php 
$repeater = get_field('step_by_step_test');
foreach( $repeater as $repeater_row ){ ?>
<p><?php echo $repeater_row['question']; ?></p>
<?php $rows = $repeater_row['answer_options'];
foreach ($rows as $row){ ?>
<?php echo $row['answer']; ?><br />
<?php } ?>
<?php } ?>

这会遍历每个问题并获取多个答案。

我怎样才能将它随机化问题?这是我的尝试,这适用于获取一组随机问题,但我在答案部分遇到错误(为 foreach 提供的参数无效)。
<?php 
$amount = get_field('select_number_of_questions');
$repeater = get_field('step_by_step_test');
$random_rows = array_rand( $repeater, $amount );
echo implode(', ', $random_rows);
foreach( $random_rows as $repeater_row ){ ?>
<p><?php echo $repeater[$repeater_row]['question']; ?></p>
<?php $rows = get_sub_field('answer_options');
foreach ($rows as $row){ ?>
<?php echo $row['answer']; ?><br />
<?php } ?>
<?php } ?>

我将此插件用于wordpress - http://www.advancedcustomfields.com/

最佳答案

首先,我将重写您的第一个代码块,使其看起来不像反刍。

<?php
$repeater = get_field("step_by_step_test");
foreach($repeater as $repeater_row) {
echo "<p>".$repeater_row['question']."</p>";
$rows = $repeater_row['answer_options'];
foreach($rows as $row) {
echo $row['answer']."<br />";
}
}
?>

现在是魔术:添加 shuffle($rows)紧接在 foreach($rows as $row) { 之前行,答案将以随机顺序出现。

编辑以回应评论:像这样开始你的代码:
$repeater = get_field("step_by_step_test");
shuffle($repeater);
$repeater_limit = array_slice($repeater,0,5);
foreach($repeater_limit as $repeater_row) {
....

关于php - 使用数组值匹配两个 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com