임의의 값을 사용하는 코드에 대해 작업하고 있는데, 몇 가지 검사가 올 바르며 올바른지 검사 한 다음 반환합니다. 그렇지 않은 경우, 기능이 발견 될 때까지 기능을 재실행해야합니다.거짓 인 경우 함수를 다시 실행하십시오.
임의의 값이 같은 일에 VAR를 설정합니다 올바른 경우 : 내가 원하는 무엇
public function generate_chair($id, $optredenID)
{
$model = new Model_Shop;
// Get all the chairs for the given room
$chairs = $model->check_chair($id);
// Get an array of reserved chairs for a given event
$reserved = $model->get_reserved($optredenID);
do {
// If chosen = 0, all chairs are available.
// If chosen = 1, one of the chairs is not available
$chosen = 0;
// Create a new empty array
$rand_chairs = array();
// Pick a random chair
$chair = array_rand($chairs);
// Based off the amount chosen in the dorpdown, build array
switch($_POST['AantalPlaatsen']) {
case '1':
array_push($rand_chairs, $chair);
break;
case '2':
array_push($rand_chairs, $chair);
array_push($rand_chairs, $chair+1);
// Check if the chair chosen is the last chair in a row
// If it is, check for another chair
if($chair == 20 || $chair == 40 || $chair == 60 || $chair == 80 || $chair == 100 || $chair == 120 || $chair == 140 ||$chair == 160 ||
$chair == 180 || $chair == 200) {
$chosen = 1;
}
break;
case '3':
array_push($rand_chairs, $chair);
array_push($rand_chairs, $chair+1);
array_push($rand_chairs, $chair+2);
break;
case '4':
array_push($rand_chairs, $chair);
array_push($rand_chairs, $chair+1);
array_push($rand_chairs, $chair+2);
array_push($rand_chairs, $chair+3);
break;
}
// Check if one of the random generated chairs is in the reserved array
// If so, the chair is unavailable and new random must be generated
if(count(array_intersect($rand_chairs, $reserved)) != 0) {
$chosen = 1;
}
} while ($chosen == 1);
return $rand_chairs;
: 그것은 0의 전까지 현재 함수를 실행하겠습니다 while 루프를 사용하여 다음 $chosen = 1;
을하고 지금은 작동하지만 누군가 다른 아이디어에 대한 아이디어가 있는지 궁금합니다. 스위치 케이스에 표시된 것처럼 고객이 2 개의 의자를 선택하고 첫 번째 의자가 행의 끝에있을 때 여러 개의 의자에 여러 개의 의자를 펼칠 수 없으므로 새 의자를 확인해야합니다.
내가하는 방법은 많은 (너무 많은) if 문을 사용하는 것입니다. 누구든지 더 나은 해결책을 알고 있습니까?
0이 될 때까지 루프를 사용하십시오. –
더 많은 블록을 포함하면 도움이 될 것입니다. 암호. 그것이 지금 서서, 질문은 나에게 너무 모호하게 보인다. 당신은 12 가지의 다른 방법으로 대답 할 수 있습니다. –
@kuroineko 전체 기능을 포함하도록 게시물을 업데이트했습니다. – user1433479