PHP:获取数组中第一个值(如果存在)的更好方法

PHP:获取数组中第一个值(如果存在)的更好方法,php,Php,这是我的密码: $quizId = ''; foreach ($module['QuizListing'] as $quizListing) { if ($quizListing['id']) { $quizId = $quizListing['id']; break; } } 有更好的方法吗?假设: 出现多个测验列表;和 并不是所有人都有身份证。 从你的问题来看,我认为这两种说法中有一种是不正确的。如果您想要第一个测验列表,请执行以下操作

这是我的密码:

$quizId = '';
foreach ($module['QuizListing'] as $quizListing)    {
    if ($quizListing['id']) {
        $quizId = $quizListing['id'];
        break;
    }
}

有更好的方法吗?

假设:

出现多个测验列表;和 并不是所有人都有身份证。 从你的问题来看,我认为这两种说法中有一种是不正确的。如果您想要第一个测验列表,请执行以下操作:

$listing = reset($module['quizListing']);
$quizId = $listing['id'];
函数返回数组中的第一个元素,如果没有,则返回false

这假设每个测验列表都有一个ID。如果不是这样,那么你的成绩就不会比你现在做的更好。

轻微变化:

$quizId = '';
foreach ($module['QuizListing'] as $quizListing)    {
    if (isset($quizListing['id'])) {
        $quizId = $quizListing['id'];
        break;
    }
}

若要回答此数组是否来自数据库,您可能需要更好地过滤查询,使其首先不包括这些行

差不多

SELECT * from Quiz WHERE id <> 0

这将为您提供一个无需任何其他处理即可使用的数组

使用array\u key\u exists可以检查数组中是否存在该键。如果它存在,则将其分配给您想要的任何对象

$quiz = array_shift($module['QuizListing']);

if (null != $quiz) {
    echo "let's go";
}
if (array_key_exists('id', $quizListing)) {
  $quizId = $quizListing['id'];   
}
@baker:$module['QuizListing']来自某个SQL查询?最好使用isset以避免警告。请注意数组\u移位。。。将修改输入数组。