Я пытаюсь создать функцию test
, которая будет использоваться для нескольких типов зданий, но я не могу передать переменные в представление.Передача многомерного массива из контроллера для просмотра в Codeigniter
код контроллера:
public function index($data = NULL){
$data1 = $this->test('hotel');
$data2 = $this->test('restaurant');
$data = array_merge($data1,$data2);
$this->load->view('templates/default',$data);
}
public function test($building_type){
$data[$building_type]['title'] = 'this is a title for '.$building_type;
for ($i=1;$i<=3;$i++) {
$data[$building_type][$i] = $building_type.' button';
}
$data['building_type_array'] = ['hotel', 'restaurant'];
return $data;
}
Посмотреть код:
foreach ($building_type_array as $value) {
echo $value; // echoes 'hotel' and 'restaurant'
echo $value['title']; // throws 'Illegal string offset'
echo $value[3]; // echoes the 4th letter of 'hotEl' and 'resTaurant'
}
echo $building_type['title']; // Throws 'Undefined variable: building_type'
echo $hotel['title']; // echoes 'this is a title for hotel'
echo $hotel[3]; // echoes 'hotel button'
Первые четыре echo
являются попытки, которые не дают ожидаемого результата. Последние два echo
из View
дают ожидаемый результат, но я бы хотел использовать общую переменную, чтобы избежать записи $hotel['title']
, $restaurant['title']
... для каждого типа здания.
Вы показали результаты, которые точно так же запрограммированы. Пожалуйста, объясните * ваши * ожидаемые результаты. Чего вы пытаетесь достичь? – Sparky