コメントに基づいて編集
class
比較のみに基づく同等性チェックのソリューション
$n = count($array['items']);
$elem = $array['items'][0]['class'];
for ($i=1 ; $i<$n ; $i++)
if ($elem !== $array['items'][$i]['class'])
break;
if ($i >= $n) {
// equal
}
特徴
- 最大 N-1 ($n-1) 比較
!==
完全一致をチェックするand notを使用!=
する (型と値)
- PHP が常に取得する必要がないよう
elem
に、最初の要素に設定します。[0]
内部配列が等しいかどうかをテストするソリューション
配列間の差を返すarray_diffを使用します。
たとえば、N 個の配列を比較するには[items]
(最大で N-1 回の比較を行います)
$n = count($array['items']);
for($i=1 ; $i<$n ; $i++)
if (count(array_diff($array['items'][0], $array['items'][$i])))
break;
if ($i >= $n) {
// they are equal
}
array_diff()
比較対象の配列にない要素を返します。返された要素 ( count()
) をカウントすると、違いを検出できます。
array_diff()
等しいかどうかをチェックするために 2 つ以上の配列が必要になる場合があることに注意してください。固定数の配列がある場合は、単純に行うことができます
// Compare 3 arrays
if (count(array_diff($array['items'][0], $array['items'][1], $array['items'][2]))) {
// Arrays differ
}