in_array()
函數用于檢查一個值是否存在于數組中。但是,當你需要在自定義對象數組中查找值時,in_array()
的默認行為可能不會滿足你的需求,因為它主要用于檢查基本數據類型(如整數、浮點數和字符串)。
要在自定義對象數組中查找值,你可以使用 array_search()
函數,它允許你提供一個回調函數來自定義搜索邏輯。這是一個示例:
class CustomObject {
public $property;
public function __construct($property) {
$this->property = $property;
}
}
// 創建一個包含自定義對象的數組
$objects = [
new CustomObject('value1'),
new CustomObject('value2'),
new CustomObject('value3'),
];
// 要查找的值
$searchValue = 'value2';
// 使用 array_search() 函數查找值
$result = array_search($searchValue, $objects, true);
// 檢查結果是否存在
if ($result !== false) {
echo "找到了值:{$result->property}";
} else {
echo "沒有找到值";
}
在這個示例中,我們創建了一個包含 CustomObject
實例的數組。然后,我們使用 array_search()
函數查找具有特定 property
值的對象。第三個參數設置為 true
,表示我們希望找到第一個匹配項的原始對象。如果找到了匹配的對象,$result
將是包含該對象的數組元素的引用,否則為 false
。