PHP で多次元配列から指定された列を抽出するメソッドの完全なリスト
多次元配列の特定の列の抽出は、PHP では非常に一般的な関数です。このため、PHP はバージョン 5.5.0 以降に専用の関数 array_column を追加しました () 。もちろん、PHP バージョンが 5.5.0 より前の場合は、他の方法を使用する必要があります。
たとえば、次の配列の場合:
$user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' => 'a2'), '2' => array('id' => 102, 'username' => 'a3'), '3' => array('id' => 103, 'username' => 'a4'), '4' => array('id' => 104, 'username' => 'a5'), );
usename 列を抽出して次のように変換します:
$username = array('a1', 'a2', 'a3', 'a4', 'a5');
いくつかの方法があります。 。
1 array_column 関数のメソッド
PHP の組み込みの array_column() 関数を使用するのが最も簡単な方法ですが、PHP のバージョンが 5.5.0 以降である必要があるという制限があります。メソッド :
$username = array_column($user, 'username');
2 array_walk 関数メソッド
array_walk() 関数は、ユーザー定義関数を使用して配列内の各要素に対してコールバック処理を実行し、現在の配列を実装します。関数:
$username = array(); array_walk($user, function($value, $key) use (&$username){ $username[] = $value['username']; });
3 array_map 関数メソッド
array_map() 関数は array_walk() に似ており、指定された配列のセルにコールバック関数を適用します。
$username = array(); array_map(function($value) use (&$username){ $username[] = $value['username']; }, $user);
実際の使用では、array_map() を使用して、PHP の組み込みの array_column() と同じ機能を持つ関数を作成できます。
/** * 获取二维数组指定的一列,并以一维数组格式返回 * 作用和PHP5.5.0中的array_column()函数一样 * @param $input array 需要取出数组列的多维数组(或结果集) * @param $column_key string 需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是NULL,此时将返回整个数组 * @param $index_key string 作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。 * @return array|null */ function array_column($input, $column_key, $index_key = null) { $arr = array_map(function($d) use ($column_key, $index_key) { if (!isset($d[$column_key])) { return null; } if ($index_key !== null) { return array($d[$index_key] => $d[$column_key]); } return $d[$column_key]; }, $input); if ($index_key !== null) { $tmp = array(); foreach ($arr as $ar) { $tmp[key($ar)] = current($ar); } $arr = $tmp; } return $arr; }
4 foreach ループ メソッド
foreach ループは上記の方法よりも効率が若干劣りますが、シンプルで理解しやすいです。
$username = array(); foreach ($user as $value) { $username[] = $value['username']; }
5 array_map のバリアント
メソッドは次のとおりです。これは、$user 配列の各値の開始値を削除し、削除された値を新しい配列 。次のように、新しい配列 $username のキーは元の配列 $user のキーのままであることに注意してください。
$username = array_map('array_shift', $user);
注: この関数は、username 列ではなく、$user の id 列を取得します。
さらに、2 次元配列の各項目の開始列または終了列を取得する必要がある場合は、次のようにすることもできます:
$username = array_map('reset', $user); $username = array_map('end', $user);
これら 3 つのバリアントの効果メソッドは比較的限られており、最初の列のみを取得します。最初の列または最後の列には便利ですが、複雑な配列で役割を果たすのは困難です。
PHP 関連の知識の詳細については、PHP 中国語 Web サイト をご覧ください。
以上がPHP で多次元配列から指定された列を抽出するメソッドの完全なリストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック









foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

PHP 配列のマージおよび重複排除アルゴリズムは、元の配列を小さなブロックに分割して並列処理する並列ソリューションを提供し、メイン プロセスは重複排除するブロックの結果をマージします。アルゴリズムのステップ: 元の配列を均等に割り当てられた小さなブロックに分割します。重複排除のために各ブロックを並行して処理します。ブロックの結果をマージし、再度重複排除します。

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。
