如何从foreach循环派生的变量创建数组?

时间:2013-11-11 08:24:15

标签: php arrays variables foreach

我确信这很简单,但是新的并且不知道我在做什么我不能完全靠自己做到。

我正在尝试创建一个wordpress帖子ID数组,该数组源自一个简单的foreach循环。

基本上我将此作为我的代码:

$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 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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);
}

答案 2 :(得分: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);
   }
}

希望它对你有所帮助。

答案 3 :(得分:0)

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