在 Laravel 中搜索数组

Bob*_*b O 2 php laravel-5

我得到了两个数组并合并它们,然后在下面寻找某个值,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)

com*_*nse 6

使用集合的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)