调用数组上的成员函数find()


"message": "Call to a member function find() on array",
"exception": "Symfony\Component\Debug\Exception\FatalThrowableError",

如何从下面的数组中获取id参数:当我传递参数1时,我想只获取第一个元素,当id为2时,我获取数组的项2

public function payments($id){
$data = [
['id' => 1, 'amount' => '22000', 'name' => 'ken'],
['id' => 2, 'amount' => '24000', 'name' => 'ken'],
['id' => 3, 'amount' => '26000', 'name' => 'ken'],
['id' => 4, 'amount' => '2000', 'name' => 'tom'],
];
return $data->find($id);
}

由于我们使用的是多维数组,我们可以使用array_searcharray_column

$data = [
['id' => 1, 'amount' => '22000', 'name' => 'ken'],
['id' => 2, 'amount' => '24000', 'name' => 'ken'],
['id' => 3, 'amount' => '26000', 'name' => 'ken'],
['id' => 4, 'amount' => '2000', 'name' => 'tom'],
];

$key = array_search($id, array_column($data, 'id'));
echo var_dump($data[$key]);

如果你想要一个"使用集合

的替代解决方案
public function payments($id){
$data = [
['id' => 1, 'amount' => '22000', 'name' => 'ken'],
['id' => 2, 'amount' => '24000', 'name' => 'ken'],
['id' => 3, 'amount' => '26000', 'name' => 'ken'],
['id' => 4, 'amount' => '2000', 'name' => 'tom'],
];
$data = collect($data);
return $data->where('id', $id)->first();
}
public function payments($id){
$data = [
['id' => 1, 'amount' => '22000', 'name' => 'ken'],
['id' => 2, 'amount' => '24000', 'name' => 'ken'],
['id' => 3, 'amount' => '26000', 'name' => 'ken'],
['id' => 4, 'amount' => '2000', 'name' => 'tom'],
];
$data = collect($data);
return $data->where('id', $id)->all();
}

最新更新