PHPでは、特にデータ比較を実行する場合、配列の違いの処理は一般的な操作です。 array_chunkとarray_diffは、配列の違いを効率的に見つけるのに役立つ2つの非常に実用的な関数です。この記事では、これら2つの機能を紹介し、それらを介して高速配列の違いのルックアップを実装する方法を示します。
array_chunk関数は、大きな配列を複数の小さな配列に分割するために使用されます。 2つのパラメーターを受け取ります。
オリジナル配列;
各分割配列に含まれる要素の数。
このようにして、大きな配列をいくつかの小さな配列に分割できます。大量のデータを処理すると、ブロック処理がパフォーマンスを改善することがあります。
<?php
$array = range(1, 10); // コンテナを作成します 1 到着着着 10 の配列
$chunkedArray = array_chunk($array, 3); // それぞれに配列を入れます 3 要素を1つのピースに分けます
print_r($chunkedArray);
?>
出力結果:
Array
(
[0] => Array ( [0] => 1 [1] => 2 [2] => 3 )
[1] => Array ( [0] => 4 [1] => 5 [2] => 6 )
[2] => Array ( [0] => 7 [1] => 8 [2] => 9 )
[3] => Array ( [0] => 10 )
)
array_diff関数は、2つ以上の配列を比較し、違いを含む配列を返すために使用されます。具体的には、他の配列とは異なる元の配列の要素を返します。
<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [4, 5, 6, 7];
$diff = array_diff($array1, $array2); // 探す $array1 そして $array2 違い
print_r($diff);
?>
出力結果:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
上記の例では、 array_diffは$ array1と$ array2を比較し、要素を$ array1で返しますが、 $ array2では返品しません。
これで、これら2つの機能を組み合わせて、配列間の違いを効率的に見つけることができます。たとえば、2つの大きな配列があるとしますが、最初にブロックでそれらを分割し、次に微分比較を個別に実行できるとします。
<?php
$array1 = range(1, 20); // aを作成します 1 到着着着 20 の配列
$array2 = range(10, 30); // aを作成します 10 到着着着 30 の配列
// それぞれに2つの配列を入れます 5 要素は断片に分かれています
$chunkedArray1 = array_chunk($array1, 5);
$chunkedArray2 = array_chunk($array2, 5);
// 找出每个块之间違い
foreach ($chunkedArray1 as $chunk1) {
foreach ($chunkedArray2 as $chunk2) {
$diff = array_diff($chunk1, $chunk2); // 探す每个分块之间違い
if (!empty($diff)) {
echo "違い: \n";
print_r($diff);
}
}
}
?>
出力は次のとおりです。
違い:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
違い:
Array
(
[0] => 6
[1] => 7
[2] => 8
[3] => 9
)
array_chunkとarray_diff関数を組み合わせることで、いくつかの実際的な問題に効果的に対処できます。たとえば、ビッグデータ処理では、ブロック内のデータを比較して、各データと他のデータの違いを見つける必要があることがよくあります。ブロック処理により、メモリの使用量がより効率的になり、一度にデータのロードが多すぎないようにすることができます。
要約します
この記事では、PHPのarray_chunkとarray_diff関数を使用して、配列間の違いを効率的に見つける方法を紹介します。 array_chunkは、大きな配列を小さな部分に分割することで、より良いプロセスを支援します。 array_diffを使用すると、2つの配列間の違いを見つけることができます。これら2つの関数を組み合わせることにより、ビッグデータを処理するときにパフォーマンスと単純化コードロジックを簡素化します。