PHPでは、 array_diff_assoc()は、2つの配列のキーと値を比較し、最初の配列に存在するが2番目の配列にはないすべての要素を含む配列を返す非常に便利な関数です。ただし、その違いをより明確に見たい場合、 print_r()関数は、配列の内容を読み取り可能な形式で印刷するのに理想的な選択です。次に、 print_r()を使用してarray_diff_assoc()の差動出力形式を表示する方法を調べ、注意を払うためにいくつかの詳細について説明します。
array_diff_assoc()関数は、2つの配列のキーと値を比較するために使用され、最初の配列には要素を含む配列を返しますが、2番目の配列ではありません。配列のキーと値を考慮します。
文法:
array_diff_assoc(array $array1, array $array2): array
$ array1 :最初の配列。
$ array2 :2番目の配列。
返品値: $ array1に存在するが$ array2には存在するすべての要素を含む配列を返します。
$ array1と$ array2の2つの配列があるとしたら、それらの違いを知る必要があります。
<?php
$array1 = array(
"a" => "apple",
"b" => "banana",
"c" => "cherry"
);
$array2 = array(
"a" => "apple",
"b" => "blueberry",
"d" => "date"
);
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
print_r()関数は、配列の内容を理解しやすい形式で出力できます。 array_diff_assoc()の返品結果を確認したい場合、 print_r()が適切な選択です。
上記のコードでは、 array_diff_assoc($ array1、$ array2)の出力は次のとおりです。
Array
(
[b] => banana
[c] => cherry
)
説明する:
「B」=>「バナナ」と「C」=>「チェリー」は、 $ array1に存在するが、 $ array2には存在しないキー価値のペアです。
キー「A」は両方の配列に存在し、同じ値を持っているため、出力の結果には表示されません。
キー「D」は$ array2に存在しますが、 $ array1には表示されないため、結果に影響しません。
キー名と値の比較: array_diff_assoc()は、キー名と値を厳密に比較します。両方の配列のキー名が同じであるが、値が異なる場合、それを違いとして扱い、出力します。
データ型の違い:比較プロセス中に、 array_diff_assoc()はデータ型を区別します。つまり、2つの要素が同じように見える場合でも、 array_diff_assoc()は、それらが異なるタイプである限り、それらを異なる要素として扱います。たとえば、1つの要素は整数であり、もう1つの要素は文字列です。Array_diff_assoc ()はそれらを異なると見なします。
空の配列の返品値:2つの配列がまったく同じ場合、 array_diff_assoc()は空の配列を返します。違いをデバッグまたは表示するには、 print_r()を使用して、たとえ空であっても結果を印刷できます。
Printout Clarity : print_r()は配列の構造を簡単に印刷できますが、複雑な多次元配列を扱う場合、出力は十分に明確に見えない場合があります。この場合、 var_dump()またはその他のデバッグツールを使用して、より詳細な情報を取得することを検討してください。
ArrayにURLアドレスを含め、すべてのURLのドメイン名をM66.netに均一に置き換える場合は、 array_map()またはstr_replace()を使用して処理できます。
たとえば、 $ array1にいくつかのURLアドレスが含まれているとします。次のように処理できます。
<?php
$array1 = array(
"home" => "https://example.com/page1",
"about" => "https://example.com/page2",
);
$array2 = array(
"home" => "https://example.com/page1",
"about" => "https://m66.net/page2",
);
$array1 = array_map(function($url) {
return preg_replace("/https?:\/\/[^\/]+/", "https://m66.net", $url);
}, $array1);
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
この例では、 $ array1のすべてのURLをpreg_replace()にm66.netとして置き換えました。次に、 array_diff_assoc()を使用して処理された配列を比較し、最後にprint_r()を使用して違いを出力します。
要約します
array_diff_assoc()は、2つの配列の違いを見つけるのに役立つ非常に便利なPHP関数です。 print_r()を使用すると、違いの出力形式を簡単に表示できます。ただし、キー名と値の厳密な比較、データ型の違い、および使用する際の空の配列、またはより複雑な構造を処理する方法に注意する必要があります。うまくいけば、この記事がprint_r()を使用してarray_diff_assoc()の微分出力形式を表示し、PHPコードを効果的にデバッグして最適化する方法をよりよく理解するのに役立つことを願っています。