Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP/JSON查找不在数组中的人_Php_Arrays_Json - Fatal编程技术网

通过PHP/JSON查找不在数组中的人

通过PHP/JSON查找不在数组中的人,php,arrays,json,Php,Arrays,Json,数据保存在JSON文件中。在记录这些数据的同时,为每个数据分配一个编号。 然后我想与另一个数字列表进行比较,找出哪个数字不在JSON文件中 例如,JSON文件: { "1":{"gID":"14423","itemID":"1","stock":null,"storeID":2,"unit":"14"},

数据保存在JSON文件中。在记录这些数据的同时,为每个数据分配一个编号。 然后我想与另一个数字列表进行比较,找出哪个数字不在JSON文件中

例如,JSON文件:

{
    "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。在循环之后,我将剩余的键作为结果