ホームページ >バックエンド開発 >PHPチュートリアル >条件を満たす配列をインターセプトするにはどうすればよいですか?

条件を満たす配列をインターセプトするにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-13 12:25:35805ブラウズ

条件を満たす配列をインターセプトします

<br />$arr = Array<br />(<br />    6 => Array<br />        (<br />            id=> 358<br />            level=> 6<br />        )<br />    4=> Array<br />        (<br />            id => 354<br />            level => 4<br />        )<br />    5 => Array<br />        (<br />            id => 353<br />            level => 5<br />        )<br />)<br />

適切な配列をインターセプトするための上記のような配列キー シーケンスがあります
キーが 6 としてソートされている場合は、上記の列のように前にあります。 、キーは 6、4、5 としてソートされます。
$arr = Array
(
6 => Array
(
) id=> 358
)}
配列が 5、4、6 にソートされている場合は、5 と 6 を取るだけです。
$arr = Array
(
5 => Array
(
id => 353
レベル => 5
)
6 => 配列
(
レベル => 6
)
)
4 が前に 4、5、6 としてソートされている場合、それらをすべて取り出して、
$arr = Array
(
4=> Array
(
) id => 354
レベル => 4
)
5 => 配列
(
id => 353
レベル = > 5 )
6 => 配列
(
id=> 358
level=> 6
)
)
4,5 個以上ある場合はどうなるか、6、7、8、9 の最適化はどうですか?

-----解決策----------------------

順序は 6,4 、 5 は 6 のみかかります (最初または最後のものを取ると考えることができます)
順序は 5, 4, 6 は 5 と 6 のみかかります (これは 順序は 4 になります。5 と 6 をすべて取るだけです (ルールは再び変更されました) あなたのような変更可能なルールでプログラムを書くことは不可能です

コードを与えていないので、最適化について話す方法はありません

-----ソリューションのアイデア------ --

これを確認すると、ルールは 1 つだけです。最初のデータのキーに従って、値
5、4、6 を取得します。最初のデータは 5 です。 5 より大きいもの (5 を含む)、つまり 5, 64, 5 , 6 を選択します。最初のものは 4、4 より大きいもの (4 を含む)、つまり 4, 5, 6
を選択します。 🎜>
そして、ループするときに最初のデータのキー値を記録し、毎回それを判断します。キーが最初の値より大きいかどうか、大きい場合はそれを記録します
。データが 7、8、9、またはそれ以上であっても、心配する必要はありません

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