PHP は、配列が別の配列のサブセットであるかどうかを判断します_PHP チュートリアル

WBOY
リリース: 2016-07-14 10:10:30
オリジナル
973 人が閲覧しました

はじめに
今日のアルゴリズムを完成させるプロセスでは、いくつかの必要なモジュールがあります。そのうちの 1 つは、$a 配列が $b 配列のサブセットであるかどうかを判断することです。おそらく、最近さらに C を書いたので、for ループを直接使用しました。実装してみますが、コード量が比較的多く、エレガントさが足りないように感じます。 QQグループでブレインストーミングをした結果、PHPが提供する多くのシステム関数を呼び出せることが分かりましたので、ここに記録しておきます


需要
$a 配列が $b 配列のサブセットであるかどうかを判断するための最小時間計算量
[php]
// $a 配列が $b 配列のサブセットであるかどうかを素早く判断します
$a = 配列(135,138); $b = 配列(135,138,137);
// $a 配列が $b 配列のサブセットであるかどうかをすばやく判断します

$a = 配列(135,138);

$b = 配列(135,138,137);

実施方法

ここで紹介する 3 つの方法は実際には同じですが、違いは実装コードにあります


for ループトラバース

[php]
$フラグ = 1; foreach ($a として $va) {
If (in_array($va, $b)) {
続けてください;
}その他{
$フラグ = 0; 休憩
}
}

if ($flag) {
「はい」とエコーします。 }その他{
「いいえ」とエコーします。 }

$フラグ = 1;
foreach ($a として $va) {
If (in_array($va, $b)) {
続けます;
}その他{

$flag = 0;

休憩;
}
}

if ($flag) {
「はい」をエコーし​​ます;
}その他{
「いいえ」をエコーし​​ます;
}


array_diff の使用



コード

[php]

$c = array_diff($a, $b); プリント_r($c); $flag = 空($c)?1 : 0;

if ($flag) {

「はい」とエコーします。 }その他{

「いいえ」とエコーします。 }

$c = array_diff($a, $b);
print_r($c);
$flag = 空($c)?1 : 0;

if ($flag) {
「はい」をエコーし​​ます;
}その他{
「いいえ」をエコーし​​ます;
}

array_intersect の使用


コード
[php]
if ($a == array_intersect($a, $b)) {
$フラグ = 1; }その他{

$フラグ = 0; }


if ($flag) {

「はい」とエコーします。 }その他{

「いいえ」とエコーします。 }

if ($a == array_intersect($a, $b)) {
$flag = 1;
}その他{
$flag = 0;
}

if ($flag) {
「はい」をエコーし​​ます;
}その他{
「いいえ」をエコーし​​ます;
}


追記

良い指導者は、私に勉強の仕方を教えるだけでなく、どのように行動し、物事を行うか、感謝と責任を持つかを教えてくれます





http://www.bkjia.com/PHPjc/477471.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/477471.html

技術記事

まえがき: 今日、アルゴリズムを完成させる過程で、いくつかの必要なモジュールがあります。その 1 つは、$a 配列が $b 配列のサブセットであるかどうかを判断することです。おそらく、C を書いたのは最近なので、単に for を使用しています。それを実装するためのループ...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート