php - 如何查看json数组是否包含值?
问题描述
所以,我是 php 新手,在测试一些服务时,我有一个 JSON 对象:
{
"entry": [
{
"authorId": "@me",
"type": "USER"
},
{
"authorId": "514",
"type": "USER"
},
{
"authorId": "516",
"type": "USER"
}
],
"count": 3,
"totalResults": 3
}
我需要断言“@me”是这个对象的一部分。我试过类似的东西:
$Obj->assertTrue(array_key_exists('@me', $response['entry']));
但它不仅会起作用。有人可以给我一个提示吗?谢谢
编辑:'@me' 可以在数组中的任何位置,而不是在第一个位置,我要求这个在 codecept 中进行测试,所以我需要直接断言
解决方案
您可以遍历结果集以检查每个条目。
function checkEntries($object, $search) {
$object = json_decode($object, true);
foreach($object['entry'] as $entry) {
if ($entry['authorId'] == $search) {
return true;
}
}
return false;
}
或者你可以使用这个:
PHP multidimensional array search by value
推荐阅读
- c++ - C++ 刽子手项目
- sml - 如何从文件中正确导入模块?
- rust - 如何将非常大的十进制字符串转换为十六进制?
- django - 将多个 uwsgi 记录器记录到标准输出
- firebase - Firebase 数据库可以同时用于 android 和网站吗
- postgresql - Postgres pg_restore 是否以任何重要的方式重组表?
- php - Laravel macOS 输入中的意外字符:'
- lua - Lua LGI 解压 GLib.Variant 对象
- python - K fold 和 Iterated K fold with shuffle 之间的区别
- spring - 在 Spring Tool Suite 中执行 Simple Spring Boot Application 时出错