in_array()

WBOY
WBOYオリジナル
2016-08-10 09:07:261181ブラウズ

//既存の ID セット $set['old_id'] とフロントから送信された ID セット $set['new_id'] を比較します。

リーリー

私が渡した値:
123,1233

print_r($set_old_id):
Array ( [0] => Array ( [ID] => 1 ) [1] => Array ( [ID] => 12 ) [2] => Array ( [ID] => 123 ) [3] => 配列 ( [ID] => 1234 ) [4] => 配列 ( [ID] => 12345 )

印刷:
ID: 123 が存在します
配列 ( [0] => 123 [1] => 1233 )

質問: print_r($checkout); がまだ 123 なのはなぜですか
明らかにスクリーニングしました。
神様が知らせてくれますように。 。ありがとうございます

返信内容:

//既存の ID セット $set['old_id'] とフロントから送信された ID セット $set['new_id'] を比較します。

リーリー

私が渡した値:
123,1233

print_r($set_old_id):
Array ( [0] => Array ( [ID] => 1 ) [1] => Array ( [ID] => 12 ) [2] => Array ( [ID] => 123 ) [3] => 配列 ( [ID] => 1234 ) [4] => 配列 ( [ID] => 12345 )

印刷:
ID: 123 が存在します
配列 ( [0] => 123 [1] => 1233 )

質問: print_r($checkout); がまだ 123 なのはなぜですか
明らかにスクリーニングしました。
神様が教えてくださると幸いです。 。ありがとうございます

リーリー

これは in_array を正しく使用する例です。具体的な問題については自分で考えてください。コードを見ただけでは $set['old_id'] がどのようなものであるかわかりません。

まず最初に$set_old_id 格式是不对的,另外在使用 in_array この機能を使用する際には、いくつかの「奇妙な動作」に注意する必要があります。この機能を使用する際に注意する必要があることは、マニュアルに多くの例が記載されています。 in_array。

形式が正しい場合、つまり ID が抽出され、[1,2,3,4] などの 1 次元配列に形成されます。次に、in_array 関数を使用するときは、ここで 3 番目のパラメーターを使用する必要があります。これは厳密な一致を意味します (型と値がまったく同じである必要があります)。例: $set_old_id リーリー

このようにして、配列に値が存在するかどうかを正確に判断できます。もちろん、

などの他の方法も使用できます。PHP マニュアルには多くのケースが記載されています。 isset()

私も以前

を使用する過程でだまされたことがあり、それをここに「PHPのいくつかの「トラップ」」に記録しました。

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