我的问题是,我有这个脚本
foreach ($arr1 as $k => $val) {
if (in_array($val, $arr2)) {
echo 'Obsazeno <br>';
} else {
echo $val . "<BR>";
}
}
其中$ arr1生成天数,$ arr2生成mysql结果数组。实际上它工作正常。如果$ arr1中的某一天在数据库中,它将回显“Obsazeno”而不是日值。
但我需要小幅升级。脚本检查$ val是否在$ arr2中并且我需要小计数contidion来执行此操作:
如果 $ val 在 $ arr2 中一次 - 它将回显$ val。
如果 $ val 在 $ arr2 两次 - 它将回显$ val。
但如果 $ val 在 $ arr2 中三次 - 它将回显“Obsazeno”。
我希望你理解我的问题。 我可以通过array_count_values进行搜索。我自己尝试但没有成功。
答案 0 :(得分:0)
试
$i=0;
foreach($arr1 as $k=>$val) {
if(in_array($val,$arr2)) {
$i++;
if($i == 3) {
echo 'Obsazeno <br>';
}
else {
echo $val."<BR>";
}
}
}
答案 1 :(得分:0)
您可以使用array_count_values实现此目的。
$values = array_count_values($arr2);
foreach ($arr1 as $k => $val) {
if (array_key_exists($val, $values) && $values[$val] >= 3) {
echo 'Obsazeno <br>';
} else {
echo $val . '<br>';
}
}
答案 2 :(得分:0)
$data = array();
foreach($arr1 as $k=>$val)
{
if(!array_key_exists($val,$data)){
$data[$val] = 0;
}
if(in_array($val,$arr2))
{
$data[$val]++;
if($data[$val]==3){
echo 'Obsazeno <br>';
}else{
echo $val."<BR>";
}
}
else
{
echo $val."<BR>";
}
}