Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中按对象值从数组中删除对象_Php_Laravel - Fatal编程技术网

在php中按对象值从数组中删除对象

在php中按对象值从数组中删除对象,php,laravel,Php,Laravel,那么,假设我有这个数组,用它的id删除对象的最好方法是什么 这就是我想到的 $followers = [['id'=>0], ['id'=>1]]; 有没有更好更有效的方法 它是一个数组而不是一个对象,那么为什么要作为对象进行访问呢 试试这个 foreach($followers as $key=>$follower){ if($follower->id == 0){unset $followers[$key]} } 您正在像对象一样访问数组的值 您未正确使用

那么,假设我有这个数组,用它的id删除对象的最好方法是什么

这就是我想到的

$followers = [['id'=>0], ['id'=>1]];

有没有更好更有效的方法

它是一个数组而不是一个对象,那么为什么要作为对象进行访问呢

试试这个

foreach($followers as $key=>$follower){
    if($follower->id == 0){unset $followers[$key]}
}
  • 您正在像对象一样访问数组的值

  • 您未正确使用
    unset

  • 您丢失了
    取消设置部分的末尾


  • 我真正需要的是从缓存中的数组中删除一个项我尝试了以下方法:

    foreach ($followers as $key => $follower) {
        if($followers[$key] == 0) {
            unset($followers[$key]);
        }
    }
    

    很遗憾我失败了,所以我现在正在使用Cache::forget。

    这不是我真正需要的,我误导了你,谢谢你!
    if(Cache::has('user_follower'.$user_id)){
            $user_follower = Cache::get('user_follower'.$user_id);
    
            foreach($user_follower as $key=>$follower){
                if($follower->user_id == Auth::id()){
                    unset($user_follower[$key]);
                    Cache::put('user_follower'.$user_id, $user_follower, 30);
                    return;
                }
            }
    
    }