PHP 配列操作を実行する場合、配列の追加、削除、変更が必要になることがよくあります。配列要素を削除すると、配列の内部順序が変更される可能性があり、foreach ループを使用して配列を走査すると、予期しない結果が発生する可能性があります。この記事では、連想配列の要素を削除して並べ替えることにより、要素の削除によって引き起こされるトラバーサルの問題を回避する方法を紹介します。
まず、PHP の配列型を見てみましょう。
PHP には、インデックス付き配列と連想配列の 2 種類の配列があります。インデックス付き配列は 0 から始まる整数インデックス付きの配列ですが、連想配列は文字列をキーとして使用します。以下は連想配列の例です。
$students = [ 'Tom' => 75, 'Jerry' => 82, 'Alice' => 95 ];
この配列では、各要素に文字列キー名と対応する値があります。
次に、連想配列 $students
から要素を削除する方法を考えます。これは、unset() 関数を使用して実現できます。
unset($students['Jerry']);
このようにして、$students
配列内のキー 'Jerry'
を持つ要素を削除できます。 。
ただし、この方法で要素を削除すると、配列内の内部順序が変更されるため、配列を走査するときに問題が発生する可能性があります。例:
foreach ($students as $name => $score) { echo "$name's score is $score\n"; }
このコードを実行すると、次の結果が得られます:
Tom's score is 75 Alice's score is 95
そして、'Jerry'
のスコアは削除されているため出力されません。 。この問題の根本原因は、foreach ループを使用して配列を走査すると、配列の内部順序で処理が進み、unset() 関数が要素を削除した後、配列の内部順序が変更されてしまうことです。
この問題の解決策は非常に簡単です。配列の内部順序によって引き起こされる走査の問題を避けるために、要素を削除した後に配列を再ソートするだけです。 PHP では、uasort() 関数を使用して、連想配列を値で並べ替えることができます。この関数の使用法は次のとおりです。
uasort($array, function($a, $b) { if ($a == $b) { return 0; } return ($a <p>uasort() 関数の最初のパラメータは並べ替える配列で、2 番目のパラメータは 2 つの値を比較するために使用されるコールバック関数です。上記のコードでは、無名関数を使用してコールバック関数を定義し、<code>$a</code> と <code>$b</code> のサイズを比較して、対応する比較結果を返します。 </p><p>上記のコードを使用して <code>$students</code> 配列を並べ替えると、次の結果が得られます。 </p><pre class="brush:php;toolbar:false">Alice's score is 95 Tom's score is 75
これで、連想配列の削除によって引き起こされる問題を回避できました。配列要素のトラバーサル問題。
完全なサンプル コードは次のとおりです。
$students = [ 'Tom' => 75, 'Jerry' => 82, 'Alice' => 95 ]; unset($students['Jerry']); uasort($students, function($a, $b) { if ($a == $b) { return 0; } return ($a $score) { echo "$name's score is $score\n"; }
この記事では、要素の削除によって引き起こされるトラバーサルの問題を回避するために、PHP で連想配列要素を削除した後にその要素を並べ替える方法を紹介します。連想配列をソートすると、配列を走査するときに正しい結果が得られるようになり、プログラミングの安定性と信頼性が向上します。
以上が連想配列を削除した後に PHP が並べ替えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
