0

関数を介してプッシュされた 2 つの配列を比較する関数があります。問題は、カウントに基づいて 2 つの異なる配列の値を比較できることです。私のコードは次のとおりです。

       function Array_Smoke($Array_1, $Array_2)
            {
                    $Return_Array = array();
                    $Array_Count = count($Array_1);             
                foreach ($Array_1 AS $SmokedKeys => $SmokedValues)
                {
                    if (in_array($SmokedValues, $Array_2))
                    {
                        $Return_Array[] = $SmokedValues;
                    }

            }
                if ($Array_Count == count($Return_Array))
                {
                    return "Arrays Match Up"; 
                }
                else
                {
                    return "Arrays Do Not Match Up";
                }
        }



   $Array_1 = array(
        "Primary Key Number 1" => "Primary Value Number 2", 
        "Sub Key Number 1" => "Sub Value Number 1",
        "Sub key Number 3" => "Sub Value Number 3", 
        "Sub Key Number 2" => "Sub Value Number 2",
   );
   $Array_2 = array(
        "Primary Key Number 1" => "Primary Value Number 2", 
        "Sub Key Number 1" => "Sub Value Number 1",
        "Sub key Number 2" => "Sub Value Number 2", 
        "Sub Key Number 3" => "Sub Value Number 3",
   );
        echo Array_Smoke($Array_1, $Array_2);

配列のキーと値の両方に基づいて比較するように関数を変更するにはどうすればよいですか?

4

3 に答える 3

1

試しましたarray_diff_assoc()か?

http://php.net/manual/en/function.array-diff-assoc.php

于 2013-02-24T19:36:03.993 に答える
0

array_diff_assoc() が必要なようです。何も返されない場合、配列は一致しています。キーと値が一致する必要があることを覚えておいてください。

于 2013-02-24T19:55:21.500 に答える
0

OK、次のように組み込みの php 演算子を使用できます。

function Array_Smoke ($array1, $array2) {
    return $array1 == $array2;
}

PHP 配列演算子に関して'==' 演算子は、両方の配列が同じキー/値のペアを持つ場合に true を返します。

于 2013-02-24T19:50:00.633 に答える