Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用数组值匹配两个foreach循环_Php_Wordpress - Fatal编程技术网

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

Php 使用数组值匹配两个foreach循环,php,wordpress,Php,Wordpress,我有两个foreach循环。第一个从Wordpress获取大量问题,第二个应该获取多个答案。这是直截了当的,若它并没有涉及一些问题的随机性,这会使它变得混乱 这是两个foreach循环,没有随机性 <?php $repeater = get_field('step_by_step_test'); foreach( $repeater as $repeater_row ){ ?> <p><?php echo $repeater_row['question']

我有两个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提供的参数无效)




我将这个插件用于wordpress-

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

<?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 />";
    }
}
?>

您的方法看起来不错,错误可能是因为
get\u sub\u field
没有返回数组,可能值得签入there@mattedgod我试过几种方法,但都得到了相同的错误-
有子字段
有子字段
有子字段
。也许这就是我的表达方式。我不想把答案随机化。我希望它能将问题随机化(确实如此),并显示这些问题的答案。该系统目前从20个问题中随机抽取5个问题,而不仅仅是随机抽取20个问题的顺序。如问题中所述,第二个foreach的参数无效。请在第一个foreach的前面再次尝试shuffle($repeater),这不会限制问题的数量。就像我说的,有20个问题,我想从这20个问题中随机抽取5个问题。谢谢,这很有效。。。讽刺的是,最初的随机代码是插件创建者的建议!既然你问了那个问题,我有一个相关的问题-。我有一些问题必须包括在随机选择中。
<?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 />";
    }
}
?>
$repeater = get_field("step_by_step_test");
shuffle($repeater);
$repeater_limit = array_slice($repeater,0,5);
foreach($repeater_limit as $repeater_row) {
    ....