使用数组:使用简单条件从数组中提取数组

时间:2017-04-07 00:44:31

标签: php arrays

我有一个数组:

$quizzes = array();
            $Quiz = array(
                'quiz_id'   => $quiz_id,
                'correct'   => $correctAnswers
            );
            $quizzes[] = $Quiz;

$quizzes是一个数组,其中包含许多名为Quiz的测验,而这些测验又有$Quiz['quiz_id'] and $Quiz['correct']。现在我要做的是$quizzes中的测验列表中选择一个特定的测验,其中quiz_id = 1。

如果存在这样的测验,我想回复测验被发现。如果不存在具有此ID的$ Quiz,则回显没有测验。

我想出的一个简单的解决方案就是做一个foreach循环。

foreach($quizzes as $Quiz) if($Quiz['quiz_id'] == 1) {} else {}

但是,由于我有超过1个测验,它会返回else语句的次数与$Quiz['quiz_id'] != 1多次一样多次。

2 个答案:

答案 0 :(得分:3)

将数组(例如$quizzes[ $quiz_id ] = $Quiz;)编入索引可以直接转到数组中的该项。

所以请使用现有的

$quizzes[] = $Quiz;

并将其更改为

$quizzes[ $quiz_id ] = $Quiz;

然后你可以使用

if( isset( $quizzes[ $quiz_id ] ) )
{
  echo 'found the quiz!';
}
else
{
  echo 'no quiz found';
}

其中$quiz_id是您要查找的测验的ID

答案 1 :(得分:1)

$id = 1;
array_filter($quizzes, function($v) use($id) {return $v['quid_id'] == $id;});