dpjpo746884 2016-06-03 14:49
浏览 492
已采纳

Php / Laravel - 从请求数组中获取最后一个元素

I am trying to get the last element of the request array in foreach loop that would look something like this:

array:5 [▼
  0 => "files/uploads/articles/bear_PNG1183.png"
  1 => "files/uploads/articles/bear_PNG1189.png"
  2 => "files/uploads/articles/bear_PNG1188.png"
  3 => "files/uploads/articles/bear_PNG1182 (1).png"
  4 => "files/uploads/articles/bear_PNG1190.png"
]

But I can't use the end() function because then I get:

Only variables should be passed by reference

This is how foreach function looks like:

foreach ($request->get('uploadedItems') as $file) {

          //make a new directory for the article and move all the uploaded files to it
          $filePathArr = explode('/', $file);
          $lastItem = array_pop($filePathArr);
          array_push($filePathArr, $article->id, $lastItem);
          $newPath = implode('/', $filePathArr);
          $articleDirectory = $this->destinationPath.'/'.$article->id;

          if(!File::exists($articleDirectory))
            File::makeDirectory($articleDirectory, 0755, true);

          File::move(public_path($file), public_path($newPath));

          if(end($request->get('uploadedItems')) == $file){
              dd($file);
          }

          Media::create(['path' => $newPath, 'article_id' => $article->id]);
        }
  • 写回答

1条回答 默认 最新

  • douya5194 2016-06-03 14:56
    关注

    Why call $request->get('uploadedItems') multiple times? Call it once and assign it to a variable before the loop or:

    foreach ($files = $request->get('uploadedItems') as $file) {
    
        if(end($files) == $file){
            dd($file);
        }
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了