ホームページ バックエンド開発 PHPの問題 同じ値に従ってPHP配列をグループ化する方法

同じ値に従ってPHP配列をグループ化する方法

Apr 14, 2023 pm 07:01 PM

PHP 配列は非常に一般的に使用されるデータ型であり、開発プロセスでよく使用されます。実際の開発では、配列内の同じ値に基づいてグループ化する必要がある状況によく遭遇しますが、これをどのように実装するか?

PHP では、array_column()、array_multisort() およびその他の関数を使用して配列を並べ替えたりグループ化したりできます。具体的な実装方法をいくつか見てみましょう。

  1. 同じ値のキー名を取得するには、array_column() 関数を使用します

まず、配列からキーに対応する値を取り出し、配列を返すことができる array_column() 関数を使用できます。同じ時間です。 array_column() 関数によって返された同じ値のコレクションである配列に基づいてグループ化操作を実行できます。

具体的な実装方法は以下の通りです:

<?php
// 定义一个数组
$arr = array(
    array('id'=>1, 'name'=>'张三', 'age'=>18),
    array('id'=>2, 'name'=>'李四', 'age'=>20),
    array('id'=>3, 'name'=>'张三', 'age'=>22),
    array('id'=>4, 'name'=>'王五', 'age'=>25),
    array('id'=>5, 'name'=>'赵六', 'age'=>20),
);

// 获取相同值的键名
$key_arr = array_column($arr, 'name');

// 分组操作
$res = array();
foreach($key_arr as $k=>$v) {
    $res[$v][] = $arr[$k];
}
print_r($res);
?>
ログイン後にコピー

上記のコードでは、複数のデータを含む配列を定義しています。次に、array_column() 関数を使用して、データ内のすべての「name」キー、つまり ['Zhang San', 'Li Si', 'Zhang San', 'Wang Wu' に対応する値を取得します。 、「趙劉」]。

次に、foreach ループを使用して上記の配列を走査し、同じ値を持つデータをグループ化し、$res 配列に保存します。最後に、$res 配列は必要なグループ化の結果です。

  1. array_multisort() 関数を使用して多次元配列を並べ替える

もう 1 つの実装方法は、array_multisort() 関数を使用して多次元配列を並べ替え、同じ値を持つデータをまとめて並べてから、グループ化操作を実行することです。

具体的な実装方法は以下の通りです。

<?php
// 定义一个数组
$arr = array(
    array('id'=>1, 'name'=>'张三', 'age'=>18),
    array('id'=>2, 'name'=>'李四', 'age'=>20),
    array('id'=>3, 'name'=>'张三', 'age'=>22),
    array('id'=>4, 'name'=>'王五', 'age'=>25),
    array('id'=>5, 'name'=>'赵六', 'age'=>20),
);

// 对数组进行排序
$name_arr = array_column($arr, 'name');
$age_arr = array_column($arr, 'age');

array_multisort($name_arr, SORT_ASC, SORT_STRING, $age_arr, SORT_ASC, SORT_NUMERIC, $arr);

// 分组操作
$res = array();
foreach($arr as $k=>$v) {
    $res[$v['name']][] = $v;
}
print_r($res);
?>
ログイン後にコピー

上記のコードでは、array_column()関数を使用して「name」キーと「age」キーに対応する値を取得し、array_multisort()を使用しています。配列をソートする関数。 array_multisort() 関数は、複数の配列パラメーターを受け取り、最初の配列の値に従って昇順または降順で並べ替え、その後、最初の配列の順序に従って他の配列を並べ替えることができます。この例では、$name_arr を昇順でソートし、$age_arr を昇順でソートするように設定します。

最後に、foreach ループを使用して同じ値のデータをグループ化し、結果を $res 配列に保存します。最後に、$res 配列は必要なグループ化の結果です。

まとめ

上記2つの方法はどちらも、同じ値に基づいてPHP配列をグループ化する操作を実現できます。特定の実装にどの方法を選択するかは、ユーザー自身のニーズ、データの構造、その他の要因によって異なります。どの方法を使用しても、配列の効果的な分類と統計を達成できるため、データ処理の効率と信頼性が迅速に向上します。

以上が同じ値に従ってPHP配列をグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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