1

我敢肯定这很简单,但是作为新手并且不知道自己在做什么,我自己无法完全掌握它。

我正在尝试创建一个从简单的 foreach 循环派生的 wordpress 帖子 ID 数组。

基本上我有这个作为我的代码:

$omit_these_quizzes = array();    
foreach ( $filtered_pass as $single_quiz ) {
    $quiz_id_number =  $single_quiz['quiz'];
    $omit_these_quizzes[] = $quiz_id_number;
}

我想获取每个生成的 $quiz_id_number ,然后最终形成如下所示的数组:

$omit_these_quizzes = array(8195,8193);

但是,我一直得到一个数组,它只包含最后一个 foreach 循环中的变量,而不是全部。我究竟做错了什么?

谢谢!

4

4 回答 4

1

您的代码看起来不错。但是如果您想要替代方法,请尝试以下操作:
请参阅此处的in_arrayarray_push

$omit_these_quizzes = array();    
foreach ( $filtered_pass as $single_quiz ) 
{
   $quiz_id_number =  $single_quiz['quiz'];
   if(!in_array($quiz_id_number ,$omit_these_quizzes))
   {
     array_push($omit_these_quizzes, $quiz_id_number);
   }
}

希望对你有帮助。

于 2013-11-11T08:38:17.733 回答
1

这个作品?

$omit_these_quizzes = array();    
foreach ( $filtered_pass as $single_quiz ) {
    $quiz_id_number =  $single_quiz['quiz'];
    array_push($omit_these_quizzes, $quiz_id_number);
}
于 2013-11-11T08:32:52.707 回答
1

看起来你正在每个循环中创建一个新数组,这就是为什么你最终得到一个只包含一个元素的数组......使用:

$omit_these_quizzes = array();    
foreach ( $filtered_pass as $single_quiz ) 
{
    $quiz_id_number =  $single_quiz['quiz'];
    array_push($omit_these-quizzes, $quiz_id_number);
}
于 2013-11-11T08:34:06.927 回答
0

你的代码是正确的。通过调用 var_dump($filtered_pa​​ss); 检查您的 $filtered_pa​​ss 变量 可能它只包含一个子数组。

于 2013-11-11T08:38:20.717 回答