我得到了两个数组并合并它们,然后在下面寻找某个值,name但似乎无法让它工作
$temp = [
['id' => 3, 'name' => 'Taylor'],
['id' => 3, 'name' => 'Abigail'],
];
$temp1 = [
['id' => 3, 'name' => 'Taylor'],
['id' => 3, 'name' => 'Taylor'],
];
$ggg = array_merge($temp,$temp1);
Run Code Online (Sandbox Code Playgroud)
使用集合的contains()方法。架构:
collect($array1) // Create a collection from the first array
->merge($array2) // merge it with the second array
->contains($key, $value); // returns boolean
Run Code Online (Sandbox Code Playgroud)
您的代码:
$temp = [
['id' => 3, 'name' => 'Taylor'],
['id' => 3, 'name' => 'Abigail'],
];
$temp1 = [
['id' => 3, 'name' => 'Taylor'],
['id' => 3, 'name' => 'Taylor'],
];
collect($temp)->merge($temp1)->contains('name', 'Taylor'); // true
collect($temp)->merge($temp1)->contains('name', 'Jane'); // false
Run Code Online (Sandbox Code Playgroud)
如果要获取符合条件的项目,请使用where():
$result = collect($temp)->merge($temp1)->where('name', 'Taylor');
Run Code Online (Sandbox Code Playgroud)
这将返回:
Collection {#465 ?
#items: array:3 [?
0 => array:2 [?
"id" => 3
"name" => "Taylor"
]
2 => array:2 [?
"id" => 3
"name" => "Taylor"
]
3 => array:2 [?
"id" => 3
"name" => "Taylor"
]
]
}
Run Code Online (Sandbox Code Playgroud)