PHPアレイでarray_reduceの使用方法
Array_reduceをPHPで使用して配列を処理し、単一の値に減らします。 1.数値の合計など、値を合計するのに最適です。 2。コンマと「アンド」で配列要素を結合するなど、カスタム文字列を構築できます。 3.たとえば、特定のキーによる連想配列の配列を再編成するなど、データのグループ化または変換に役立ちます。効果的に使用するには、明確な初期値から始めて、コールバックロジックをシンプルに保ち、反復全体で状態を維持するときに適用する必要があります。
array_reduce
PHPで使用し、配列を処理し、単一の値に「削減」します。それは、合計、連結された文字列、フィルタリングされた配列です。実際には、1つの値になる限り、実際には必要なものは何でもあります。

基本レベルでの動作は次のとおりです。
配列、コールバック関数、およびオプションで初期値を渡します。コールバックは、配列内の各要素に対して実行され、毎回更新される「キャリー」値を継続します。

それを現実世界の用途とそれらを適用する方法に分解しましょう。
配列の合計値
これはおそらく最も簡単な例です。数字の配列があり、合計を取得したい場合、 array_reduce
それをきれいに行うことができます。

$ numbers = [10、20、30、40]; $ total = array_reduce($ numbers、function($ carry、$ item){ $ carry $ itemを返します。 }、0);
-
$carry
0から始まります(提供された初期値)。 - 毎回、現在のアイテムは
$carry
に追加されます。 - 最後に、
$total
100になります。
初期値をスキップすると、 null
から開始されます。これは、数字を期待している場合に望むものではないかもしれません。
配列要素からカスタム文字列を構築します
別の一般的なユースケースは、配列をフォーマットされた文字列に変えることです。たとえば、名前をコンマと「アンド」で結合します。
$ names = ['Alice'、 'Bob'、 'Charlie']; $ result = array_reduce($ names、function($ carry、$ name){ if($ carry === null){ $ nameを返します。 } 「$ carry、$ name」を返します。 });
それはあなたに"Alice, Bob, Charlie"
を与えます。
そこから、 "Alice, Bob and Charlie"
のようにより自然にしたい場合は、コールバック内のロジックを調整することができます。インデックスを確認するか、残りのアイテムをカウントします。
データのグループ化または変換
数字や文字列などの単純なタイプだけではありません。 array_reduce
を使用して、配列を再構築またはフィルタリングすることもできます。
連想配列の配列があるとします。
$ users = [ ['id' => 1、 '役割' => 'admin']、 ['id' => 2、 'role' => 'user']、 ['id' => 3、 '役割' => 'admin']、 ];
そして、あなたはそれらを役割によってグループ化したい:
$グループ= array_reduce($ users、function($ carry、$ user){ $ role = $ user ['role']; if(!sisset($ carry [$ role])){ $ carry [$ role] = []; } $ carry [$ role] [] = $ user; $ carryを返します。 }、[]);
今、あなたは持っています:
[ 'admin' => [ / *ユーザー1および3 * /]、 「ユーザー」=> [ / *ユーザー2 * /] ]
この種のグループ化は、API応答またはデータベースの結果を扱うときに非常に柔軟で便利です。
array_reduce
使用するためのいくつかのヒント
- しっかりとした初期値から始めます- それはあなたのロジックをよりシンプルにし、エラーが発生しないようにします。
- コールバックを過度に複雑にしないでください- 1つのタスクに焦点を合わせてください。
- 合計、蓄積者、条件付き建物など、状態を追跡する必要がある場合は使用します。
-
読みやすさを考慮してください- 特に複雑なロジックの場合、
foreach
ループがより明確になる場合があります。
それは強力ですが、他のツールと同様に、仕事に合ったときに使用するのが最適です。
ええ、 array_reduce
最も派手なPHP関数ではありませんが、快適になると、クリーンで機能的な方法で配列を処理する可能性が多くなります。
以上がPHPアレイでarray_reduceの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

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

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

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

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

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

usefilter_var()tovalidateemailsyntaxandcheckdnsrr()toverifydomainmxrecords.example:$ email = "user@example.com"; if($ email、filter_validate_email)

useunserialize(serialize($ obj))fordeepcopying whenalldataisserializable;それ以外の場合は、__clone()tomaniallyduplicatededededededavoidsharedReferenceを実装します。

usearray_merge()tocombinearrays、urblitingduplicatestringkeysandreindexingnumerickeys; forsimplerconcatenation、inthphp5.6、usethesplatoperator [... $ array1、... $ array2]。

NamesSpacesInphporganizeCodeandPreventnamingConflictsByGroupingClasses、インターフェイス、関数、およびコンテンダントアンダースピフィクティフィクティフィクティフィクティフィクショナル

toupdateadatabaserecordinphp、firstconnectusingpdoormysqli、thenuseprepreadedStatementStoeaseaseesecuresQlupDateQuery.example:$ pdo = newpdo( "mysql:host = localhost; dbname = your_database"、$ username、$ username、$ sibsfar

the__call()メソッドは、customhandlingbyacceptingthemetodnameandarguments、ashownwhencollingdsslikesayhello()

この記事では、MySQLで条件付き集計を実行するためにケースステートメントを使用して特定のフィールドの条件付き合計とカウントを実現する方法について説明します。実用的なサブスクリプションシステムケースを通じて、レコードステータス(「終了」や「キャンセル」など)に基づいてイベントの合計期間と数を動的に計算する方法を示し、それにより、複雑な条件集計のニーズを満たすことができない従来の合計関数の制限を克服します。チュートリアルでは、左の結合の可能性のあるヌル値を扱う際の合体の重要性を詳細に機能させて、sum機能のケースステートメントの適用を分析します。

usepathinfo($ filename、pathinfo_extension)togetthefileextension; itreliailailavaliavelyhandlesmultipledotsendedgecases、returningtheextension(例えば、 "pdf")oranemptystringifnoneexists。
