如何解决PHP FOREACH ARRAY问题
| 这就是我所拥有的:$prevtag = \"1,2,5\";
$arr;
$arr[\"1\"] = \"BOOKS\";
$arr[\"2\"] = \"MAGAZInes\";
$arr[\"3\"] = \"PAMPHLETS\";
$arr[\"4\"] = \"CD\'S\";
$arr[\"5\"] = \"DVD\'S\";
我需要检查$ arr中是否存在任何$ prevtag,然后回显5个复选框:
foreach ($arr as $key => $value) {
$checked = in_array($prevtag,$arr) ? \'\' : \'checked=\"checked\"\';
echo \"<input name=\\\"txtTags\".$key.\"\\\" type=\\\"checkBox\\\" id=\\\"txtTags\".$key.\"\\\" value=\\\"on\\\" $checked />\\n\";
echo \"<label for=\\\"txtTags\".$key.\"\\\">\".$value.\"</label>\\n\";
}
但是我正在检查所有内容,而不仅仅是$ prevtag中的内容-我做错了什么?
解决方法
in_array($prevtag,$arr)
正在检查数组$arr
是否包含值1,2,5
因此您可以执行以下操作:
$checked = in_array($key,explode(\',\',$prevtag)) ? \'\' : \'checked=\"checked\"\';
,在您的示例中,“ 6”是字符串而不是数组,因此无法在其上使用“ 7”。
因此,您可以尝试:
$prevtag = explode(\',$prevtag);
接着:
foreach ($arr as $key => $value) {
$checked = in_array($key,$prevtag) ? \'\' : \'checked=\"checked\"\';
echo \"<input name=\\\"txtTags\".$key.\"\\\" type=\\\"checkbox\\\" id=\\\"txtTags\".$key.\"\\\" value=\\\"on\\\" $checked />\\n\";
echo \"<label for=\\\"txtTags\".$key.\"\\\">\".$value.\"</label>\\n\";
}
,将ѭ6做成一个数组,然后执行类似的操作
$preArray=explode(\",\",$prevtag);
foreach ($arr as $key => $value) {
$checked = in_array($key,$preArray) ? \'checked=\"checked\"\' : \'\';
...
}
,$checked = strpos( $prevtag,(string)$key ) ? \'\' : \'checked=\"checked\"\';
$ prevtag是字符串而不是数组->in_array()
将不适用
,您正在检查\'1,5 \'是否在\'books \'或\'magazines \'等内部
$prevtag = array(1,5);
$checked = in_array($key,$prevtag) ? \'checked=\"checked\"\' : \'\'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。