一个字符串的求教

php中文网
发布: 2016-06-20 12:30:28
原创
941人浏览过

<?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这个城市浏览 其他的不能浏览呢 */
登录后复制


实在转不弯了

快转字幕
快转字幕

新一代 AI 字幕工作站,为创作者提供字幕制作、学习资源、会议记录、字幕制作等场景,一键为您的视频生成精准的字幕。

快转字幕 357
查看详情 快转字幕


回复讨论(解决方案)

in_array 的第二个参数是数组,你用字符串当然不行
要  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 的关系是紧密的  因为$a 存储了城市id 需要用$a中的某一个值和$b 做对比  现在就卡在怎么对比上了

也就是 
if($a怎么对比$b){
echo "yes";
}else{
echo "no";
}

用in_array肯定是不行的 

你怎么回事?
if(in_array($b, explode(',', $a))) {
  //这里是允许访问的内容
}

版主这样是不行的
也行我表达的不够清晰
我已经拆分34个字段用switch进行判断了 

仔细琢磨过了 用逗号分隔 进行精确判断好像做不到 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号