別のフラット配列からの一致する列値を持つ配列行を保持する
複数の列を含む配列 $arr1 と 2 番目のフラット配列 $ が与えられたとします。特定の列値のリストを含む arr2 の場合、目的は $arr1 をフィルターし、特定の列の値が $arr2 の要素と一致する行のみを抽出することです。
解決策:
このタスクを効率的に実行するには、array_uintersect() を使用できます。このネイティブ関数は、比較中にソート アルゴリズムを利用して実行速度を向上させます。比較ロジックを決定するには、2 つの配列とカスタム コールバック関数が必要です。
提供されたコードでは、コールバック関数は配列の構造化を活用して、$arr1 と $arr2 の各要素から id 列にアクセスします。 id 列が存在しない場合は、パラメータの値がデフォルトになります。
比較では、両方の配列の id 値が等しいかどうかがチェックされ、$arr1 の行が $arr2 の値と一致することが確認されます。結果は、$arr1 の必要な行のみを含む新しい配列になります。
このアプローチでは、関数呼び出しが最小限に抑えられ、実行時間が最適化されるため、in_array() の反復呼び出しに対して優れたパフォーマンスが提供されます。
以上がフラット配列の列値が一致する配列行を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。