ホームページ  >  記事  >  バックエンド開発  >  PHP で 2 つの多次元配列の連想行間の違いを見つける方法

PHP で 2 つの多次元配列の連想行間の違いを見つける方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-13 00:10:02278ブラウズ

How to Find Differences Between Associative Rows of Two Multidimensional Arrays in PHP?

2 つの多次元配列の連想行間の差異を取得する

PHP では、配列関数を利用して配列間の差異を比較および特定できます。 $pageids には存在するが、$parentpage には存在しない情報を見つける必要性を考慮してください。ただし、このシナリオでは array_diff_assoc() だけを使用するだけでは十分ではない可能性があります。

ネストされた配列を効果的に比較するには、次の手法を組み合わせて使用​​できます。

$serializedPageIds = array_map('serialize', $pageids);
$serializedParentPage = array_map('serialize', $parentpage);

$pageWithNoChildren = array_map('unserialize',
    array_diff($serializedPageIds, $serializedParentPage));

このアプローチには次の手順が含まれます。 :

  1. 多次元配列のシリアル化: array_map('serialize', ...) を使用して、多次元配列 $pageids と $parentpage を、各サブ配列の文字列表現を含む 1 次元配列に変換します。
  2. シリアル化された配列の比較: array_diff() は、手順 1 で作成した 1 次元配列を比較し、次の配列間の違いを特定します。
  3. 相違点のシリアル化解除: 相違点が特定された後、array_map('unserialize', ...) が適用されて文字列表現がサブ配列に変換され、結果として目的の結果が得られます。

結果の $pageWithNoChildren には、$pageid からの連想行が含まれます。 $parentpage には存在しません。この手法により、ネストされた配列を効率的かつ正確に比較できます。

以上がPHP で 2 つの多次元配列の連想行間の違いを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。