昨日は、生成された複数の配列の交差を判定する、つまり、これらの配列に交差があるかどうかを判定する必要がある関数を作成しました。今回は、必要な友達ができる PHP 配列の交差判定プログラムのコード例を紹介します。それを参照してください。
2 つの配列が交差するかどうかを判断する必要があります。私が最初に感じたのは、確かにこの関数があるはずだということでした。
配列 array_intersect(配列 配列1,配列 配列2[,配列N…])N 個の配列の交差要素を返します。連想配列の場合は、array_intersect_assoc() を使用できます。
PHPの場合は以下の通りです:
配列の交差 array_intersect()
array_intersect() 関数は、最初の配列に出現し、他のすべての入力配列に出現する値のみで構成されるキー保存配列を返します。その形式は次のとおりです:
コードをコピー | |
$fruit1 = array("アップル","バナナ","オレンジ");
$fruit2 = array("梨","リンゴ","ブドウ"); |
コードをコピー | |
$count = count($projects);
for($i=0;$i
If(!array_intersect(explode(',', $projects[$i]['role']),explore(',', $projects[$i]['next_approve_role']))){ |
$fruit2 = array("黄色"=>"梨","赤"=>"リンゴ","紫"=>"ブドウ");
$fruit3 = array("green"=>"スイカ","orange"=>"オレンジ","red"=>"リンゴ");
$intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
|
コードをコピー | |
$rand = function() {
$result = array(); } $result を返す;
};
$param_b = $rand();
|
まず、PHP の組み込みメソッド array_intersect によって達成されるパフォーマンスを見てみましょう:
コードをコピー | |
$time = マイクロタイム(true); $result = array_intersect($param_a, $param_b); $time = マイクロタイム(true) - $time; echo "array_intersect: {$time}n"; ?>
|
コードをコピー | |
$param_a = 配列(1, 2, 2);
$param_b = 配列(1, 2, 3);
Array_intersect($param_a, $param_b),
|
コードは次のとおりです | コードをコピー |
関数 int_array_intersect() $args = func_get_args(); foreach ($args AS $arg) { $intersect = function($a, $b) { $length_a = count($a); for ($i = 0, $j = 0; $i
If($a[$i]
続行; if($a[$i] > $b[$j] && ++$j) { $result[] = $a[$i]; if (isset($a[$next = $i + 1]) && $a[$next] != $a[$i]) { $result を返す; $result = array_shift($args); foreach ($args as $arg) { $result を返す; $time = マイクロタイム(true); $result = int_array_intersect($param_a, $param_b); $time = マイクロタイム(true) - $time; echo "int_array_intersect: {$time}n"; ?> |
直感的には、組み込み関数の方がカスタム関数よりも速いと思いますが、この場合、結果はまったく逆になります。
array_intersect: 0.023918151855469
int_array_intersect: 0.0026049613952637
。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 中国語版
中国語版、とても使いやすい

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック



