文字列についての質問です

WBOY
WBOYオリジナル
2016-06-20 12:30:28812ブラウズ

<?php$a='1,19,34';//无规律的N个数字用逗号分隔$b="20";//任意一个单数/*使用场景:$a 存了城市ID 用户$b 是城市ID=20  他只能在$a 有20的地方浏览 其他的城市不能 假如使用函数 in_array $a='1,20,18,19'; $b='20'; 那么他也可以在1 18 19浏览了 如何实现他只能在20这个城市浏览 其他的不能浏览呢 */


もう回れない


ディスカッション (解決策) への返信

in_array の 2 番目のパラメーターは配列です。もちろん、文字列は使用できません。
する必要があります。in_array($b, explode(',', $a ))

これが事実であることはわかっていますが、 $a='1,20,18,19'; $b='20'; と表示されます。彼は 1 18 19 でも閲覧できます
20 都市でのみ閲覧でき、他の都市は閲覧できないことをどのように認識しますか?

たとえば、
url.php?city=20 (データ インベントリ 1 ,20,18,19)
ユーザー A が位置する都市は 20

in_array を使用する場合

url.php?city=1 url.php?city=18 url .php?city=19 はすべてアクセス可能です
実装方法は? 彼は url.php?city=20 のみにアクセスできます

このルート $a には何もありません。 $a はすべての都市の ID を格納するだけですが、$b にはユーザーの都市 ID が含まれます。
都市を閲覧するときは $b を判断し、その後 $b の都市が他の都市を禁止することを許可する必要があります。これは $a とは関係ありません。 $a には都市 ID が格納されており、$a の特定の値を $b と比較する必要があるため、

は $a と密接に関連しています。


と比較する方法に行き詰まっています。 🎜>if($a は $b とどう比較しますか){
echo "はい";
}else{
echo "いいえ";

それは間違いなくin_array を使用する場合 いいえ

どうしたのですか?

if(in_array($b,explode(',', $a))) {
//これはアクセスが許可されているコンテンツです
}

これは許可されていませんモデレータに受け入れられる

大丈夫、表現が足りませんでした
フィールドを34個に分割し、switchで判断しました

よく考えた結果、カンマは使えないようです正確な判断のためにそれらを分離する

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