PHP-座席予約プログラムの多次元連想配列で連続する値を見つける

lild0nut

私はショーの席を予約するプログラムに取り組んでいます。$ row変数と$ column変数を使用して作成された多次元配列があります。いくつかの初期予約を行った後、さらに予約を行うために整数を関数/コードに渡す必要があります。

配列をループして、連続する使用可能なシート(値 "avail")を見つけようとしましたが、指定されたシートを無視するか、それらをスキップします。後でマンハッタン距離を使用して、最初に最適な座席(1列目から6列目)を予約する必要があります。

配列を作成する関数:

//function to create seating chart data structure
function createChart($row, $column){
    //create array for row values
    $row_chart = array();
    for($r=0; $r < $row; $r++){
        $row_number = $r + 1;
        $row_chart[$row_number] = array(); // array of cells for row $r
    }
    //create array for column values
    $column_chart = array();
        for($c=0; $c < $column; $c++){
            $column_number = $c + 1;
            //$location = $c_num;
            $status = "avail";
            foreach($row_chart as $key => $value){
                $column_chart[$column_number] = $status; //add arrays of "seats" for each row
            }
        }

    //nest the column array into the row array
    foreach($row_chart as $key => $value){
        foreach($column_chart as $k => $v){
            $seating_chart[$key][$k] = $status; 
        }
    }
    //$seating_chart = array_combine($row_chart, $column_chart);
    return $seating_chart;
}

初期予約を行う機能:

    $initial_reservation = "R1C4 R1C6 R2C3 R2C7 R3C9 R3C10";
    $initial_reservation = explode(" ", $initial_reservation);
    echo "<br> <br>";
    print_r($initial_reservation);
    $initial_res_length = count($initial_reservation);
    echo "<br> <br>";
    //echo $initial_res_length;

    //split each seat up into integers to mark it reserved in the array
//issue for flexibility: find way to break up string by letters and numbers for larger charts
    for($a = 0; $a < $initial_res_length; $a++){
        $reso_row = substr($initial_reservation[$a], 1, 1);
        //echo $reso_row . "<br>";    
        $reso_column = substr($initial_reservation[$a], 3, 2);
        //echo $reso_column . "<br>";
        $working_chart[$reso_row][$reso_column] = "reserved";
    }

    //echo "<br> <br>";
    //echo "<pre>" . print_r($working_chart, 1) . "</pre>";

さらに予約をするために私がこれまでに持っているもの:

//write some code to find consecutive seats
    $seats_needed = 4;
    $outer_array_length = count($working_chart);
    //echo $outer_array_length;

    for($d = 1; $d < $outer_array_length + 1; $d++){
        for($e = 1; $e < $seats_needed + 1; $e++){
            //issue: run through $seats_needed amount of times and executes the code block
            //needed: check if $seats_needed amount of seats in available first then run reservation code
                if($working_chart[$d][$e] === "avail"){
                    $working_chart[$d][$e] = "new reservation";  
                }
                else{
                    echo "Sorry, not possible.";
                }

        }
        break;
    }

    echo "<br> <br>";
    echo "<pre>" . print_r($working_chart, 1) . "</pre>";

最初に利用可能な座席の数($ Seats_needed)を見つけてから、ループしてそれらを予約できるようにしたいと思います。

アルノ

$ working_chartを次のように初期化しました:

$working_chart =  createChart(10, 11);

私はさらに予約をする試みを書きました:

foreach(array_keys($working_chart) as $d ){
    $maxColumn = count($working_chart[$d]) - $seats_needed + 1;
    for($e = 1; $e <= $maxColumn ; $e++){
        if(["avail"] === array_unique(array_slice($working_chart[$d], $e - 1 , $seats_needed))){
            $working_chart[$d] = array_replace($working_chart[$d], array_fill($e, $seats_needed, "new reservation"));
            break 2;
        }
        else{
            echo "Sorry, not possible.";
        }
    }
}

私はそれがあなたを助けることができることを願っています...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PHP:多次元連想配列から個別の値を見つける

分類Dev

連想配列phpで最大の値を見つける

分類Dev

PHPの値で多次元連想配列を並べ替える

分類Dev

PHPの多次元連想配列に値を追加する

分類Dev

PHPで多次元の連想配列からアイテムを削除する方法

分類Dev

2つの連想配列を1つの多次元連想配列に結合するPHPの効率的な方法

分類Dev

PHP配列を多次元連想配列に変換する方法

分類Dev

2つの多次元PHP連想配列を追加します

分類Dev

2つの連想配列を1つの多次元配列PHPに変換する

分類Dev

php連想配列多次元

分類Dev

所望のフォーマットで多次元連想配列を生成するPHP

分類Dev

php:キーで連想配列の値を更新する方法

分類Dev

PHPで連想配列の値を変更する方法

分類Dev

PHPで2つの連想配列を結合する

分類Dev

PHPで2つの連想配列をマージする方法

分類Dev

連想配列phpの最小および最大のキーと値を見つける

分類Dev

多次元連想配列にアクセスするPHP

分類Dev

PHPで2つの関連する連想配列から要素と値を出力する方法

分類Dev

PHPの多次元連想配列

分類Dev

PHPで連想配列を別の連想配列に追加する

分類Dev

PHP-キーが多次元連想配列に存在する場合、その位置を返します

分類Dev

Yii Php:連想配列に特定のキーを持つ値を取得する

分類Dev

値の最初の文字のみを表示するPHP連想配列

分類Dev

PHPの連想配列のキーの値を更新する方法

分類Dev

php-連想配列を多次元配列に変換する方法

分類Dev

php連想配列はキーで1つのランダムな値を選択します

分類Dev

PHP連想配列(その値ではない)を別の配列にプッシュする方法は?

分類Dev

一連の数字の中から欠落している数字を見つけるphpを使用してプログラムを作成します

分類Dev

PHP-phpで特定のキーと値を持つ連想配列の4つのアイテムを表示する

Related 関連記事

  1. 1

    PHP:多次元連想配列から個別の値を見つける

  2. 2

    連想配列phpで最大の値を見つける

  3. 3

    PHPの値で多次元連想配列を並べ替える

  4. 4

    PHPの多次元連想配列に値を追加する

  5. 5

    PHPで多次元の連想配列からアイテムを削除する方法

  6. 6

    2つの連想配列を1つの多次元連想配列に結合するPHPの効率的な方法

  7. 7

    PHP配列を多次元連想配列に変換する方法

  8. 8

    2つの多次元PHP連想配列を追加します

  9. 9

    2つの連想配列を1つの多次元配列PHPに変換する

  10. 10

    php連想配列多次元

  11. 11

    所望のフォーマットで多次元連想配列を生成するPHP

  12. 12

    php:キーで連想配列の値を更新する方法

  13. 13

    PHPで連想配列の値を変更する方法

  14. 14

    PHPで2つの連想配列を結合する

  15. 15

    PHPで2つの連想配列をマージする方法

  16. 16

    連想配列phpの最小および最大のキーと値を見つける

  17. 17

    多次元連想配列にアクセスするPHP

  18. 18

    PHPで2つの関連する連想配列から要素と値を出力する方法

  19. 19

    PHPの多次元連想配列

  20. 20

    PHPで連想配列を別の連想配列に追加する

  21. 21

    PHP-キーが多次元連想配列に存在する場合、その位置を返します

  22. 22

    Yii Php:連想配列に特定のキーを持つ値を取得する

  23. 23

    値の最初の文字のみを表示するPHP連想配列

  24. 24

    PHPの連想配列のキーの値を更新する方法

  25. 25

    php-連想配列を多次元配列に変換する方法

  26. 26

    php連想配列はキーで1つのランダムな値を選択します

  27. 27

    PHP連想配列(その値ではない)を別の配列にプッシュする方法は?

  28. 28

    一連の数字の中から欠落している数字を見つけるphpを使用してプログラムを作成します

  29. 29

    PHP-phpで特定のキーと値を持つ連想配列の4つのアイテムを表示する

ホットタグ

アーカイブ