Laravelフレームワークのilluminatesupportコレクションのソートの問題
Laravel フレームワーク イルミネーションサポートコレクションのソート問題技術
たぶんそうだ 公開日 2015-04-03 00:59
Laravel のコレクションのソートに問題があって苦労しました。数日前、私は長い間、自分のコードに問題があるのではないかと常に疑っていました。 Collection オブジェクトは、sort を実行した後に、values メソッドを実行する必要があります。そうしないと、Collection オブジェクトの項目の並べ替え結果が反映されません。もちろん手動 toArray() も有効です。 PHP の uasort 関数を呼び出す Collection sort メソッドの内部実装を表示します。この関数は、ソート後に元のキー => 値の関係を維持します。
公式ドキュメントは次のように抜粋されています:
Collection values()Reset the keys on the underlying array.Return ValueCollection
このメソッドがなぜvaluesと呼ばれるのかはまだわかりません。この名前は内部でarray_valuesメソッドが使用されています。項目の割り当てを再構成するための値メソッド。場合によっては、開発は非常に面倒で、常に変更されます。コード スニペットは次のとおりです。並べ替えを有効にするには、values メソッドを呼び出す必要があります。
$left = $right = null;switch($sortby){ case "rating": case "month_sales": $left = -1; $right = 1; break; case "order_lead_time": case "minimum_order_amount": $left = 1; $right = -1; break;}if($ascending === "1"){ $left = 1; $right = -1;}elseif($ascending === "0"){ $left = -1; $right = 1;}$restaurants->sort(function($a, $b) use ($sortby, $left, $right){ return ($a->{$sortby} >= $b->{$sortby}) ? $left : $right;});$restaurants->values();
開発プロセス中に特にこだわりを持ったり、変数の名前やパラメーターのメソッドを気にしすぎたり、時期尚早にコードを最適化したりすることは良くありません。まったく同じビジネスを行う企業は世界中に 2 つと存在しないはずであり、オープンソース ソフトウェアを多用することが必ずしも良いとは限りません。ところで、伝説の Artisan についてコメントしたいのですが、エラーログに日付やエラーが発生した場所が表示されないので、デバッグ方法を尋ねました。
sortメソッドとvaluesメソッドの内部実装コード:
public function sort(Closure $callback){ uasort($this->items, $callback); return $this;}public function values(){ $this->items = array_values($this->items); return $this;}
読む(498) コメント(0) コメントを見る

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
