連想配列は、キーとそれに関連付けられた値のセットを記述するときによく使用されるデータ型です。もちろん、連想配列も例外ではありません。 Web 開発タスクにとって非常に重要なことは、PHP が連想配列を操作する複数の方法をサポートしていることです。開発者にとって、開発するプログラムに合わせてこれらの配列を操作する最も効果的で適切な方法を見つける必要があります。
この記事では、PHP 連想配列を操作するための 10 のテクニックを紹介します。上手に使用すると、開発効率が向上します。
1. 配列要素を追加します
PHP は弱い型指定の言語です。つまり、配列とそのサイズを明示的に宣言する必要はなく、配列の宣言と値の入力を同時に行うことができます。
$capitals = array( 'Alabama' => 'Montgomery', 'Alaska' => 'Juneau', 'Arizona' => 'Phoenix' );
追加の配列要素は次のように追加できます:
$capitals['Arkansas'] = 'Little Rock';
数値インデックス付きの配列を操作している場合は、array_push() 関数や array_unshift() 関数など、明示的に名前を付けた関数を使用して要素を前後に追加することもできますが、これらの関数は連想配列では操作できません。
2. 配列要素を削除します
配列から要素を削除したい場合は、次のような unset() 関数を使用してください:
7 unset($capitals['California']);
数値インデックス配列を使用する場合、配列要素を削除するためのより柔軟な方法が増えています。array_shift() 関数と array_pop() 関数を使用して、それぞれ配列の先頭と末尾から要素を削除できます。
3. キーと値を交換します
州都をインデックスとして、州名を関連する値として使用して、$states という新しい配列を作成するとします。このタスクは、array_flip() 関数を使用して簡単に実行できます。
$capitals = array( 'Alabama' => 'Montgomery', 'Alaska' => 'Juneau', 'Arizona' => 'Phoenix' ); $states = array_flip($capitals); // $states = array( // 'Montgomery' => string 'Alabama', // 'Juneau' => string 'Alaska', // 'Phoenix' => string 'Arizona' // );
4. 配列を結合する
前の配列が Web ベースの「FlashCard」サービスで使用されており、米国の各州の首都に関する知識を学生にテストする方法を提供したいとします。array_merge() 関数を使用できます。州と首都を含む配列をマージします。
$stateCapitals = array( 'Alabama' => 'Montgomery', 'Alaska' => 'Juneau', 'Arizona' => 'Phoenix' ); $countryCapitals = array ( 'Australia' => 'Canberra', 'Austria' => 'Vienna', 'Algeria' => 'Algiers' );29 $capitals = array_merge($stateCapitals, $countryCapitals);
5. 配列値の編集
配列内のデータに大文字と小文字のエラーが含まれており、データベースに挿入する前にこれらのエラーを修正したい場合は、array_map() 関数を使用して各配列要素にコールバックを適用できます。
function capitalize($element) { $element = strtolower($element); return ucwords($element); } $capitals = array( 'Alabama' => 'montGoMEry', 'Alaska' => 'Juneau', 'Arizona' => 'phoeniX' ); $capitals = array_map("capitalize", $capitals);
6. キーを押して配列を並べ替えます
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); ksort($capitals);配列はパラメーターとして ksort() 関数に渡されるため、ソートされた結果を別の変数に代入する必要がなくなりました。
7. ランダム配列ソート
FlashCard プログラムには別のランダム ソート テクノロジが関係しており、現時点では shuffle() 関数を使用して配列項目のランダム ソートを実装する必要があります。
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); shuffle($capitals);配列の順序を崩す必要がなく、値をランダムに選択したいだけの場合は、array_rand() 関数を使用します。
8. キーと値が存在するかどうかを確認します
in_array() 関数を使用すると、配列要素が存在するかどうかを確認できます。
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); if (in_array("Juneau", $capitals)) { echo "Exists!"; } else { echo "Does not exist!"; }この関数が配列キーが存在するかどうかを判断できることは、この時点では array_key_exists() 関数と同じであることを知っている人はほとんどいません。
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); if (array_key_exists("Alaska", $capitals)) { echo "Key exists!"; } else { echo "Key does not exist!"; }
9. 配列の検索
ユーザーが特定の状態に関連付けられた状態を簡単に取得できるように、配列リソースを検索する場合は、array_search() 関数を使用して配列検索を実装できます。
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); $state = array_search('Juneau', $capitals); // $state = 'Alaska'
10. 標準 PHP ライブラリ
標準 PHP ライブラリ (SPL) は、以前の PHP 言語では利用できなかった多くのデータ構造、イテレータ、インターフェイス、例外、およびその他の関数を開発者に提供します。これらの関数は、オブジェクト指向構文を通じて配列を走査するために使用できます。
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); $arrayObject = new ArrayObject($capitals); foreach ($arrayObject as $state => $capital) { printf("The capital of %s is %s<br />", $state, $capital); } // The capital of Arizona is Phoenix // The capital of Alaska is Juneau // The capital of Alabama is Montgomeryこれは SPL の多くの優れた機能の 1 つにすぎません。詳細については、PHP ドキュメントを必ずお読みください。