Php 如何查看json数组是否包含值?
因此,我是php新手,在测试一些服务时,我有一个JSON对象:Php 如何查看json数组是否包含值?,php,json,testing,codeception,Php,Json,Testing,Codeception,因此,我是php新手,在测试一些服务时,我有一个JSON对象: { "entry": [ { "authorId": "@me", "type": "USER" }, { "authorId": "514", "type": "USER"
{
"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;
}
或者您也可以使用此选项:“authoriId”是该值的数组键。尝试用数组中的
替换数组中的\u key\u exists,以检查值。@Gavin请不要将解决方案建议为注释@现在这个页面已经关闭,我只能提供建议作为评论。如果您想要一些能够巧妙地放入assertTrue()
调用中的内容,那么这里有两个选项:@Andrei因为您只收到了错误的答案,并且在您的问题上没有经过投票的答案,所以您可以自行删除您的问题(它可能会被删除)。