PHPの多次元配列は複製できますか?

WBOY
リリース: 2023-05-19 12:03:37
オリジナル
572 人が閲覧しました

PHP は、多次元配列と配列の重複排除をサポートする強力なプログラミング言語です。開発プロセスでは、データの管理と処理に多次元配列を使用する必要があることが多く、データの重複排除も不可欠です。そこで質問は、PHP の多次元配列は複製できるかということです。この記事では、PHP における多次元配列の重複排除方法について説明します。

1. PHP 多次元配列

PHP では、多次元配列とは、複数のネストされた配列を含む配列です。たとえば、多次元配列を使用して生徒の成績情報を保存できます。

$scores = array(
    "张三" => array("语文" => 85, "数学" => 90, "英语" => 98),
    "李四" => array("语文" => 91, "数学" => 88, "英语" => 95),
    "王五" => array("语文" => 92, "数学" => 95, "英语" => 90)
);
ログイン後にコピー

上の例では、3 つのネストされた配列を含む多次元配列を作成しました。各ネストされた配列には、生徒の成績情報が含まれています。多次元配列では、各配列に対応するキー値 (Zhang San、Li Si、Wang Wu) があり、このキー値は数値または文字列型であることに注意してください。

2. 重複排除の方法

  1. array_unique() 関数

array_unique() 関数は重複排除用の PHP の組み込み関数です。配列から値を複製し、元の配列のキー値を保持します。ただし、多次元配列の場合、array_unique() 関数は、第 1 レベルの部分配列から重複する値のみを削除できます。例:

$array = array(1,1,'a','b',array('a','b'),array('a','b')); 
$result = array_unique($array);
print_r($result);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => 1
    [2] => a
    [3] => b
    [4] => Array
        (
            [0] => a
            [1] => b
        )

)
ログイン後にコピー

入れ子になった配列 ('a'、'b') が 2 回繰り返されたにもかかわらず、重複が排除されていないことがわかりました。

2. カスタム関数

多次元配列の重複排除の問題については、関数をカスタマイズしてそれを実現できます。以下は簡単な例です:

function multi_array_unique($array){
    foreach ($array as $key1 => $value1) {
        foreach ($array as $key2 => $value2) {
            if ($key1 != $key2 && $value1 === $value2) {
                unset($array[$key2]);
            }
        }
    }
    return $array;
}
ログイン後にコピー

上記の関数は、多次元配列を走査するために二重の foreach ループを使用します。2 つの配列が同じ配列ではなく、値が等しい場合、後続の配列要素はが削除されます。最後に、処理された配列が返されます。

この関数をテストできます:

$array = array(
    array("id"=>1,"name"=>"apple"),
    array("id"=>2,"name"=>"banana"),
    array("id"=>3,"name"=>"orange"),
    array("id"=>4,"name"=>"orange"),
    array("id"=>5,"name"=>"apple")
);
$result = multi_array_unique($array);
print_r($result);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => apple
        )

    [1] => Array
        (
            [id] => 2
            [name] => banana
        )

    [2] => Array
        (
            [id] => 3
            [name] => orange
        )

)
ログイン後にコピー

出力結果から、複数の値が重複していることがわかります。次元配列は削除され、一意の値のみが保持されます。

3. 概要

PHP 多次元配列は、カスタム関数を通じて重複を排除して、プログラムの実行効率と精度を向上させることができます。実際の開発では、プロジェクトの要件に基づいて適切な重複排除方法を選択する必要があります。上記は私の経験とアイデアの一部です。交換や議論を歓迎します。

以上がPHPの多次元配列は複製できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート