我不想捕获下一个数组值并将其与当前值进行比较。我尝试在 foreach
中使用 $key+1
执行此操作,但除了获取前一个值之外,它还运行当前值两次。有人可以帮助我吗?
数组的var_dump
array(5) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "0" [4]=> string(0) "" }
代码:
foreach ($q_switch as $key => $value) {
if ( $q_switch[$key+1] == 0 || empty($q_switch[$key+1]) ) {
$question_html .= ""
} else {
$question_html .= '<div class="question-wrapper">
<form method="post">
<div class="wp-postquiz-question">' . $q_question . '</div>
<div class="wp-postquiz-question-options">
<select name="answer-' . $question_no . '">
<option value="A">' . $q_option_1 . '</option>
<option value="B">' . $q_option_2 . '</option>
<option value="C">' . $q_option_3 . '</option>
<option value="D">' . $q_option_4 . '</option>
</select>
</div>
<input type="hidden" name="question-no" value="' . $question_no . '">
<input type="hidden" name="post-id" value="' . $postid . '">
<input type="hidden" name="action" value="answer-submitted">
<input type="submit" name="submit" class="button primary" value="Answer!">
</form>
</div>';
}
}
最佳答案
我不确定您想要实现什么目标,但通过查看您的代码,您似乎想转义那些由 0 和 '' 组成的值(空/空)值。因此,最好使用 array_filter
而不是使用 foreach
循环。函数并简单地将其余代码发布在 foreach
$q_switch = array('0'=>"1",'1'=>"1",'2'=>"1",'3'=>"0",'4'=>"");
$result = array_filter($q_switch);
print_r($result);//Array ( [0] => 1 [1] => 1 [2] => 1 )
关于php - 在 foreach 中捕获数组的下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30447436/