PHP检查数组中是否存在嵌套值

时间:2016-02-11 10:39:39

标签: php arrays loops nested

我有以下数组$学生:

[
(int) 0 => [
    'Students' => [
        'number' => '1364249',
        'first_name' => 'a',
        'last_name' => 'asda',
        'email' => 'MajC5@corporation.uk'
    ],
    'Responses' => [
        'id' => '2'
    ]
  ]
]

这里可能有多名学生。在得到这个数组之前我有一个变量,这是一个学号。然后我必须检查这个数组,看看学生号码是否存在于任何地方。我该怎么做?我尝试了以下但得到错误'Undefined index:number'。

$student_id = $this->Auth->user('Student.number');

    $authorised = false;
    foreach ($students as $student) {
        if (isset($student['Students'])) {
            if ($student['number'] == $student_id) {
                $authorised = true;
            }
        }
    }

我不擅长PHP,所以我很抱歉,如果这是非常明显的,我怀疑我只是通过数组的循环非常错误,会感谢任何指导。

1 个答案:

答案 0 :(得分:1)

试试这个:

foreach ($array as $student) {
     if (isset($student['Students'])) {
         if ($student['Students']['number'] == $student_id) {
              $authorised = true;
         }
     }
}