Laravel:从集合数组中删除元素

时间:2017-03-30 04:51:05

标签: php arrays laravel collections

我使用一个名为$ users的变量" pluck"只使用来自我的用户表的电子邮件,使用:

$users = user::all()->pluck('email');

当我dd($ users)时,我得到了这个

<pre>
Collection {#214 ▼
  #items: array:8 [▼
    0 => "adminone@example.com"
    1 => "admintwo@example.com"
    2 => "Adobot@example.com"
    3 => "Lawly@example.com"
    4 => "Cerms@example.com"
    5 => "Charlie@example.com"
    6 => "test@example.com"
    7 => "test001@example.com"
  ]
}
</pre>

意味着$ users不仅仅是一个数组,当我将它视为数组时会遇到各种类型的错误。

我的问题是,在php(在Laravel框架中)如何从上面的变量中删除特定用户的电子邮件?或者有更好的方式使用&#34;采摘&#34;所以它返回一个数组?

提前感谢。

4 个答案:

答案 0 :(得分:0)

这里$users是一个Std类对象,您可以迭代它并将其属性推送到如下数组:

$userDetails = array();
foreach($users as $user)
{
  $userDetails[] = (array)$user;
  // or
  $userDetails[] = $user->index;
}

您还可以在If内放置一个foreach()块来检查某些情况。

答案 1 :(得分:0)

如果您要删除电子邮件ID为索引为0的电子邮件,请先按照以下查询

   $users = user::all()->pluck('email');
   unset($users['0']);
   $dd($users);

答案 2 :(得分:0)

您可能希望使用->forget()

$collection->forget($key);

或者您可以使用reject方法

$newColection = $collection->reject(function($element) {
    return $element === 'emailaddress@';
});

答案 3 :(得分:0)

我也有这个问题,我解决了这个问题:

DB::table('user')->pluck('email')->all();