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
。