-1

しかし、以下のコードを実行すると 2 つのエラーが発生します。

メッセージ: 未定義のインデックス: rt_default_price ファイル名: controllers/reservations.php 行番号: 24

メッセージ: 不正なオフセット タイプ ファイル名: controllers/reservations.php 行番号: 24

行番号24は...

$combined[] = array($key => $arrVals[$i]);

コントローラー (reservations.php)

$arrVals['rt_name'] = $this->reservations_model->pop_room_type(); /* This is the 1st Array:

Array
(
[rt_name] => Array
    (
        [0] => Array
            (
                [rt_name] => Business
            )

        [1] => Array
            (
                [rt_name] => Econ
            )

        [2] => Array
            (
                [rt_name] => Luxury
            )

        [3] => Array
            (
                [rt_name] => VIP
            )

    )

)
*/

$arrKeys['rt_default_price'] = $this->reservations_model->pop_room_price(); /* This is the 2nd Array:


Array
(
[rt_default_price] => Array
    (
        [0] => Array
            (
                [rt_default_price] => 50000
            )

        [1] => Array
            (
                [rt_default_price] => 25000
            )

        [2] => Array
            (
                [rt_default_price] => 75000
            )

        [3] => Array
            (
                [rt_default_price] => 100000
            )

    )

)
*/



$combined=array();
foreach ($arrKeys as $i => $key) {
$combined[] = array($key => $arrVals[$i]); // Line 24
}

/*echo "<pre>";
print_r($combined);
echo "</pre>";

Array
(
[0] => Array
    (
    )

)
*/

$this->load->view('/main/new_reservation', $combined);

ビュー (main/new_reservation.php)

<?php
echo form_dropdown('room_type', $combined);
?>    

モデル (reservation_model.php)

function pop_room_type() {
    $this->db->select('rt_name');
    $query=$this->db->get('room_type');
    return $query->result_array();
}

function pop_room_price() {
    $this->db->select('rt_default_price');
    $query=$this->db->get('room_type');
    return $query->result_array();
}
4

2 に答える 2

1

あなたが達成しようとしていることは理解していると思いますが、間違っている場合は修正してください。

$combined=array('rt_name'=>array());
foreach ($arrKeys['rt_default_price'] as $i => $defaultPrice) {
  $combined['rt_name'][$i]=array(reset($defaultPrice)=>reset($arrVals['rt_name'][$i]));
}

これは、インデックスが同じであることに依存することに注意してください。そうでない場合は、インデックスが存在することを確認するチェックを追加する必要があります。

リセット関数は、配列の最初の要素を返します。

于 2013-07-05T06:26:21.190 に答える