我有一個這樣的陣列:
$arr = ({
"ID":"10",
"date":"04\/22\/20"
},
{
"ID":"20",
"date":"05\/25\/20"
},
{
"ID":"32",
"date":"07\/13\/20"
});
我想知道陣列中是否存在 2 個不同鍵的值,我該如何實作?
示例:如果 id 等于 32 并且 date 等于 07/13/20,則回傳 true。
我試過,in_array($monthName, array_column($GLOBALS['group_posts_array'], 'month'));但這只適用于一個鍵。我想一次實作到鍵,有點像 if 陳述句中的 && 。
提前致謝。
uj5u.com熱心網友回復:
我不認為$arr這個問題是一個有效的 php 陣列,但如果它應該是一個多維陣列,你也可以將一個陣列傳遞給in_array,其中包含你正在尋找的鍵和值:
$arr = [
[
"ID" => "10",
"date" => "04\/22\/20"
],
[
"ID" => "20",
"date" => "05\/25\/20"
],
[
"ID" => "32",
"date" => "07\/13\/20"
]
];
$values = [
"ID" => "32",
"date" => "07\/13\/20"
];
var_dump(in_array($values, $arr, true));
$values["ID"] = "33";
var_dump(in_array($values, $arr, true));
輸出
bool(true)
bool(false)
uj5u.com熱心網友回復:
您可以實作“一些”功能。
function some(array $arr, callable $fn):bool{
foreach($arr as $index=>$item){
if($fn($item, $index)){
return true;
}
}
return false;
}
用法類似于以下內容:
$id = 32;
$date = "07/13/20";
$isInArray = some($arr, function($item, $index) use ($id, $date){
return $item->id == $id && $item->date == $date;
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370094.html
