前提・実現したいこと
qiitaAPIをいいねが多い順に並べ替えたいです。
usortでなくても、並べ替えられたらいいと考えていますが最適な方法が見つかりません。
同じクラス内にあるクラスをなぜ呼び出せないのかがわからないです。
発生している問題・エラーメッセージ
呼び出せない、または関数名が無効と出ます。
usort() expects parameter 2 to be a valid callback, function 'sortLike' not found or invalid function name
該当のソースコード
Controller
1<?php 2 3namespace App\Http\Controllers; 4 5use GuzzleHttp\Client; 6use Illuminate\Http\Request; 7use Illuminate\Support\Facades\Http; 8 9class ApiController extends Controller 10{ 11 public function sortLike($a, $b) 12 { 13 return $a->likes_count > $b->likes_count ? -1 : 1; 14 } 15 16 public function api() 17 { 18 $url = 'https://qiita.com/api/v2/items'; 19 $parameters = [ 20 'page' => 3, 21 'per_page' => 10, 22 'query' => 'php' 23 ]; 24 $response = Http::get($url, $parameters); 25 26 $items = $response->body(); 27 $array = json_decode($items, true); 28 29 foreach ($array as $item) { 30 $item["id"]; 31 $item["title"]; 32 $item["likes_count"]; 33 $item["tags"]; 34 } 35 usort($array, "sortLike"); 36 return view('api.second', ['array' => $array]); 37 } 38}
試したこと
クラスが呼び出せないためprivate,public,protectedなど試してみました。
またソート順にするためsortメソッドなども試してみました。
ご教授して頂けたら幸いです。
補足情報(FW/ツールのバージョンなど)
laravel8

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。