I have an array and I am checking if a value exists in the array using in_array()
. However, I want to check only in the ID
key and not date
.
JavaScript
x
$arr = ({
"ID":"10",
"date":"04/22/20"
},
{
"ID":"20",
"date":"05/25/20"
},
{
"ID":"32",
"date":"07/13/20"
});
So in this example, the condition should not be met since 25
exists in date
, but not in ID
.
JavaScript
if (in_array("25", $arr)) {
return true;
}
Advertisement
Answer
To directly do this, you need to loop over the array.
JavaScript
function hasId($arr, $id) {
foreach ($arr as $value) {
if ($value['ID'] == $id) return true;
}
return false;
}
If you need to do this for several IDs, it is better to convert the array to a map and use isset
.
JavaScript
$map = array();
foreach ($arr as $value) {
$map[$value['ID']] = $value;
// or $map[$value['ID']] = $value['date'];
}
if (isset($map["25"])) {
}
This will also allow you to look up any value in the map cheaply by id using $map[$key]
.