php - 如何检查我的数组中是否存在索引
问题描述
我有两个数组,一个显示所有测验。另一个显示所有已完成的测验。现在我喜欢为所有测验列表都需要显示但与完成的测验表匹配的每个数组显示这个,如果可用它将返回状态为真。我正在使用 array_key_exist 但它显示错误。
$getquizId = [
'id' => '',
'title' => '',
'status' => ''
];
$allquizId = [];
$totalQuiz = Quize::where('course_id', $course_id)->with('resources')->get();
$doneQuiz = QuizProgress::where('user_id', $user_id)->where('course_id', $course_id)->with('course')->get();
$progress = (count($doneQuiz) / count($totalQuiz)) * 100;
foreach ($totalQuiz as $key => $value) {
$getquizId = [
'id' => $value->id,
'title' => $value->title,
'status' => (array_key_exists($key, $doneQuiz) ? ($value->id == $doneQuiz[$key]['id'] ? true : false) : false)
];
// if (array_key_exists($key, $doneQuiz)) {
// ($value->id == $doneQuiz[$key]['quiz_id'] ? $getquizId['status'] = 'true' : $getquizId['status'] = 'false');
// }
array_push($allquizId, $getquizId);
}
return $allquizId;
在这里(array_key_exists($key, $doneQuiz) ? ($value->id == $doneQuiz[$key]['id'] ? true : false) : false)
我需要检查数组键是否存在。
我想显示这样的数组
[
{
"id": 4,
"title": "Digital Marketing",
"status": true
},
{
"id": 5,
"title": "Personal Leadership",
"status": false
}
]
解决方案
首先得到完成的测验的id,然后用in_array检查数组但是我建议你建立正确的关系
$doneQuiz = QuizProgress::where('user_id', $user_id)->where('course_id', $course_id)->with('course')->pluck('quiz_id')->toArray();
$getquizId = [
'id' => $value->id,
'title' => $value->title,
'status' => in_array($value->id, $doneQuiz) ? true : false
];
推荐阅读
- powershell - 对包含给定短语的字符串应用过滤器并返回之后发生的所有内容
- javascript - 根据另一个单词数组对一组单词进行排序
- c# - CodeDOM:命名参数
- node.js - node.js @sendgrid/mail 错误:未经授权
- kubernetes - kube-apiserver healthz 调用中检查了什么?
- css - 当我知道值不是空白时,Asp.net 参数显示为空
- eclipse-emf - 如何在同一工作空间中而不是在运行时 Eclipse 环境中从 Ecore 元模型实例化模型?
- jquery - 单击链接时删除超链接
- r - 模拟适用于 n= 100 但不适用于 n = 300
- php - Mysql如何将多个Where子句添加到单个表中