В настоящее время я даю оценку одному или нескольким людям и выбираю рисовать более одного человека на основе оценки. Тем не менее, все еще существует ошибка во время выполнения и не устраняется. Пожалуйста, дайте мне знать, как решить эту проблему.
это мой код:
$selectChildrens = array();
for($i=0;$i<$recuTotal;$i++){
$random = rand(0,sizeof($childSelectArray)-1);
$selectChild = $childSelectArray[$random];
$sameCheck = 0;
if(sizeof($selectChildrens) == 0){
array_push($selectChildrens,$selectChild);
while(($key = array_search($selectChild,$childSelectArray)) != NULL){
unset($childSelectArray[$key]);
}
$recuTotal—;
$i=0;
}else{
array_push($selectChildrens,$selectChild);
while(($key2 = array_search($selectChild,$childSelectArray)) != NULL){
unset($childSelectArray[$key2]);
}
$recuTotal—;
$i=0;
}
}
Я вижу, что ваша попытка уменьшить $recuTotal
не использует правильный синтаксис.
Используйте эту строку вместо: $recuTotal--
Вы используете длинную черту, но нужны два дефиса.
Что касается вашего array_search()
линии, я всегда использую: !==false
хотя я не уверен, что это имеет значение.
Наконец, вы можете использовать !sizeof($selectChildrens)
короче, если заявление.
Хотя я признаю, что не полностью прочесал ваш код, чтобы увидеть, что он делает, это блок кода DRYer, который будет работать так же:
$selectChildrens = array();
for($i=0;$i<$recuTotal;$i++){
$random = rand(0,sizeof($childSelectArray)-1);
$selectChild = $childSelectArray[$random];
$sameCheck = 0;
array_push($selectChildrens,$selectChild);
while(($key=array_search($selectChild,$childSelectArray))!==false){
unset($childSelectArray[$key]);
}
$recuTotal--;
$i=0;
}
Других решений пока нет …