通过PHP/JSON查找不在数组中的人
数据保存在JSON文件中。在记录这些数据的同时,为每个数据分配一个编号。 然后我想与另一个数字列表进行比较,找出哪个数字不在JSON文件中 例如,JSON文件:通过PHP/JSON查找不在数组中的人,php,arrays,json,Php,Arrays,Json,数据保存在JSON文件中。在记录这些数据的同时,为每个数据分配一个编号。 然后我想与另一个数字列表进行比较,找出哪个数字不在JSON文件中 例如,JSON文件: { "1":{"gID":"14423","itemID":"1","stock":null,"storeID":2,"unit":"14"},
{
"1":{"gID":"14423","itemID":"1","stock":null,"storeID":2,"unit":"14"},
"2":{"gID":"14424","itemID":"5","stock":null,"storeID":2,"unit":"6"},
"3":{"gID":"14425","itemID":"8","stock":null,"storeID":2,"unit":"38"}
}
项目编号必须介于1和10之间。我想找到那些不在JSON文件中的。在上述示例中,没有2,3,4,6,7,9,10
项目编号
我做了什么?
foreach ($array1 as $key => $val) {
if ($val['itemID'] === array(range(1,10))) {
//
} else {
//
}
}
结果:失败
我该怎么做呢?您可以从一个完整的数字数组开始,然后删除存在的数字。像这样:
$numbers = array_flip(range(1, 10));
foreach ($array1 as $key => $val) {
unset($numbers[$val['itemID']]);
}
$result = array_keys($numbers);
请注意,我翻转数组,使键中的数字从1到10。在循环之后,我将剩余的键作为结果