我正在尝试在PHP中搜索类的实例,但是对于我一生来说,我不知道该怎么做,除了显而易见的是遍历数组中的每个项目并检查值。 我希望有人可以提供帮助。 这是一个例子
class Item {
public $item;
public $test;
public function __construct($item) {
$this->item = $item;
$this->test = sprintf("%d - Hello", $item);
}
}
$array = [];
for($i=0; $i < 100; $i++) {
$array[] = new Item($i);
}
$foundItem = array_search(75, array_column($array, "item"));
echo print_r($foundItem, true);
我希望$foundItem
是返回的整个对象。
预先感谢。
答案 0 :(得分:0)
array_search
返回数组中该项的键。由于仍然可以使用整个数组,因此可以通过简单的更改使用它来访问整个对象:
$foundItem = $array[array_search(75, array_column($array, "item"))];
请参见https://3v4l.org/6k6nE(请注意,这需要PHP 7+,因为array_column
直到那时才在对象数组上起作用)
您还可以使用其他一些方法(尽管您说过要避免手动循环对象)。 array_column
支持使用第三个参数按给定的列对数组重新索引,因此这将消除使用array_search
的需要:
$array = array_column($array, null, 'item');
$foundItem = $array[75];