Php 如何使用以下规则确定级别
我有一个数组,如下所示Php 如何使用以下规则确定级别,php,arrays,for-loop,Php,Arrays,For Loop,我有一个数组,如下所示 $levels = array(P, P, F, F, P) (P, F, P, F, P) p表示通过,F表示失败 有五个级别,由数组索引表示 我必须使用以下规则确定级别 规则: 必须传递当前级别才能移动到下一个级别 最低通过水平应视为实际水平 在上面的例子中。实际液位应计算为2。最后一个P将被忽略,因为之前的级别未通过 在另一个示例中,如果数据如下所示 $levels = array(P, P, F, F, P) (P, F, P, F, P) 实际级别应为1
$levels = array(P, P, F, F, P)
(P, F, P, F, P)
p表示通过,F表示失败
有五个级别,由数组索引表示
我必须使用以下规则确定级别
规则:
$levels = array(P, P, F, F, P)
(P, F, P, F, P)
实际级别应为1(如果数组索引从1开始)。最低通过级别
我已经做了很多,但是代码看起来可能有点不同。我把这个问题解释为一个孤立的系统。原因是为了避免一些混乱和复杂
$result = array();
foreach($answers as $att=>$level){
foreach($level as $key=>$val) {
if (in_array("0", $val))
$result[$att][$key] = 0;
else
$result[$att][$key] = 1;
}}
for($i=1; $i<=6; $i++){
for($j=1; $j<=5; $j++){
if($result[$i][$j]==1)
$attribute.$i = $j;
else
continue;
}
}
$result=array();
foreach($att=>$level){
foreach($key=>$val){
if(在_数组中(“0”,$val))
$result[$att][$key]=0;
其他的
$result[$att][$key]=1;
}}
对于($i=1;$i请尝试以下代码:
for($i=0; $i<count($levels); $i++){
if($levels[$i] == "F"){
$actual_level = $i;
break;
}
}
echo $actual_level;
对于($i=0;$i请尝试以下代码:
for($i=0; $i<count($levels); $i++){
if($levels[$i] == "F"){
$actual_level = $i;
break;
}
}
echo $actual_level;
对于($i=0;$i请看php.net有很多数组函数,还有一个nice,它返回第一个匹配的键。由于这将是第一个“F”,您需要减去1才能得到前面的键。如果级别从1开始,则无需减去1
即使阵列中没有“F”,这也可以工作
$levels = array('P', 'P', 'F', 'F', 'P');
$firstFailed = array_search('F', $levels);
// Instead of 5 use the var holding your max level.
echo $firstFailed ? $firstFailed : 5;
看看php.net,有很多数组函数,还有一个nice,它返回第一个匹配的键。因为这将是第一个“F”,所以需要减去1才能得到前面的键。如果级别从1开始,则无需减去1
即使阵列中没有“F”,这也可以工作
$levels = array('P', 'P', 'F', 'F', 'P');
$firstFailed = array_search('F', $levels);
// Instead of 5 use the var holding your max level.
echo $firstFailed ? $firstFailed : 5;
所以,我们应该为您编写代码,对吗?我没有看到任何问号-问题是什么?那么,我们应该为您编写代码,对吗?我没有看到任何问号-问题是什么?