PHP は、広く使用されているオープン ソースの高水準プログラミング言語であり、Web 開発で広く使用されています。その柔軟性と使いやすさにより、多くの Web サイト フレームワーク、CMS、ブログ システムなどで最初の選択肢となっています。 PHP では、配列を扱う必要があることがよくあります。この記事では、PHP を使用して 2 次元配列のキーを 2 次元配列の値に置き換える方法を説明します。
1. 2 次元配列の概念
2 次元配列は配列であり、その各要素も配列です。この部分配列には任意のデータ型を含めることができます。文字列、数値、ブール値、オブジェクトなど。
$users = array(
array('id' => 1001, 'name' => 'Tom', 'age' => 23),
array('id ' => 1002, '名前' => 'ジェリー', '年齢' => 28),
array('id' => 1003, '名前' => 'アリス', '年齢' => 20)
);
上記のコードは 3 つの要素を含む 2 次元配列です。各要素には 3 つのキーと値のペアが含まれており、それぞれユーザーの ID、名前、年齢を表します。
2. 配列の値をキーに置き換えます
場合によっては、配列内のキーと値のペアの値を新しい配列のキーとして使用する必要があります。この値を使用して、クエリ、並べ替え、その他の操作を実行できます。 2 次元配列をループし、各要素のキーと値のペアを、値がキーである配列に変換できます。
たとえば、2 次元配列の各要素の ID 値に基づいて新しい配列キーを作成する必要があります。
$users = array(
array('id' => 1001, 'name' => 'Tom', 'age' => 23),
array('id ' => 1002, '名前' => 'ジェリー', '年齢' => 28),
array('id' => 1003, '名前' => 'アリス', '年齢' => 20)
);
$newArr = array();
foreach ($users として $user) {
$newArr[$user['id']] = $user;
}
上記のコードでは、$users 配列を反復処理し、新しい配列キーを各要素の ID 値に設定します。最後に、id をキーとする要素を含む新しい配列を取得します。
3. PHP 組み込み関数を使用してこれを実現します
手動の走査に加えて、PHP 組み込み関数 array_column() を使用して 2 次元のキー値を実装することもできます。配列をキーとして使用します。
$users = array(
array('id' => 1001, 'name' => 'Tom', 'age' => 23),
array('id ' => 1002, '名前' => 'ジェリー', '年齢' => 28),
array('id' => 1003, '名前' => 'アリス', '年齢' => 20)
);
$newArr = array_column($users, null, 'id');
上記のコードでは、array_column( ) 関数 パラメータは操作する必要がある 2 次元配列、2 番目のパラメータは変換する必要があるフィールドです。要素全体を変換するには、ここで null を使用します。 3 番目のパラメーターは、新しいキー値に対応するフィールドです。
4. 実際の使用例
上記の実装方法は実際の開発において非常に役立ちます。例えば、ECサイトを開発する場合、ユーザーの閲覧履歴に基づいて関連商品をレコメンドする必要があります。各製品の ID、名前、価格などが連想配列として格納されている製品テーブルがあるとします。製品の推奨リストを生成するには、顧客の閲覧履歴に基づいてこの配列を検索する必要があります。
$products = array(
array('id' => 1, 'name' => 'Apple iPhone XS', 'price' => 1059),
array( 'id' => 2, 'name' => 'Samsung Galaxy S9', 'price' => 939),
array('id' => 3, 'name' => 'Google Pixel 3', '価格' => 799),
array('id' => 4, '名前' => 'Sony Xperia XZ3', '価格' => 875),
array('id' => 5, 'name' => 'Xiaomi Mi Mix 3', 'price' => 569)
);
$history = array(3, 1) , 2, 5); //顧客の閲覧履歴、arrayに保存されます
$recommendations = array();
foreach ($history as $productId) {
$product = $products[ array_search ($productId, array_column($products, 'id'))];
$recommendations[$product['name']] = $product['price'];
}
上記のコードでは、まず $products 配列を定義します。ここで、各要素は製品情報を含む連想配列です。また、各ユーザーが閲覧した製品 ID を含む $history 配列も定義します。
$history 配列をループし、array_column() 関数を使用して $products 配列内の対応する要素のインデックスを検索し、product を使用して要素の名前と価格情報を取り出します。キーとして名前、値として価格を指定し、$recommendations 配列に保存します。最後に、お客様にさらに製品を推奨するための推奨リストがあります。
要約
PHP では、ループ トラバーサルと組み込み関数 array_column() を使用して、2 次元配列のキー値に対応する値を配列の新しいキー値として設定できます。この方法は実際の開発において非常に実践的で、開発効率を大幅に向上させることができ、PHPの強力な機能の一つでもあります。
以上がPHPで2次元配列の値をキーに置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。