Пытаюсь объединить массивы в один, для обеднения взял функцию array_merge
у меня получился массив:
Array
(
[0] => Array
(
[order_id] => 17
[customer_id] => 19
[firstname] =>
[lastname] =>
[email] =>
[telephone] =>
[delivery_method] => 1
[delivery_address] =>
[region] => 349
[country] => 18
[comment] => что то
[product_name] => Часы
[model_product] => ВС
[quantity] => 1
[total] => 32.0000
[oll_total] => 32.0000
[language_id] => 1
[date_added] => 2017-02-09 12:04:56
[date_modified] => 2017-02-09 12:04:56
)
[1] => Array
(
[name] => Сумская область
)
[2] => Array
(
[name] => Верхняя сыроватка
)
Пытаюсь привести массив к виду
Array
(
[0] => Array
(
[order_id] => 17
[name] =>
[name] =>
[customer_id] => 19
[firstname] =>
[lastname] =>
[email] =>
[telephone] =>
[delivery_method] => 1
[delivery_address] =>
[region] => 349
[country] => 18
[comment] => что то
[product_name] => Часы
[model_product] => ВС
[quantity] => 1
[total] => 32.0000
[oll_total] => 32.0000
[language_id] => 1
[date_added] => 2017-02-09 12:04:56
[date_modified] => 2017-02-09 12:04:56
делаю перебор по массиву
foreach ($results as $result) {
$this->data['orders'][] = array(
'firstname' => $result['firstname'],
'lastname' => $result['lastname'],
'email' => $result['email'],
'telephone' => $result['telephone'],
'delivery_method' => $result['delivery_method'],
);
}
Получаю ошибку Undefined index: firstname
и т.д. Подскажите правильно так делать, если нет подскажите как правильно ?
переделал получилось так
Array
(
[0] => Array
(
[name] =>
[telephone] =>
[email] =>
[delivery_address] =>
[comment] => что то
[product_name] => Часы
[model_product] => ВС
[quantity] => 1
[total] => 32.0000
[oll_total] => 32.0000
[date_added] => 2017-02-09 12:04:56
[name_region] => Сумская область
[name_city] => Верхняя сыроватка
)
)
$this->data['orders'] = array(); $orders = $this->model_account_order->getOrder();
foreach ($orders as $order) {
$regions = $this->model_account_order->getRegionName();
foreach ($regions as $region) {
$citys = $this->model_account_order->getCityName();
foreach ($citys as $city) {
$this->data['orders'][] = array(
'name' => $order['firstname'] . " " . $order['lastname'],
'telephone' => $order['telephone'],
'email' => $order['email'],
'delivery_address' => $order['delivery_address'],
'comment' => $order['comment'],
'product_name' => $order['product_name'],
'model_product' => $order['model_product'],
'quantity' => $order['quantity'],
'total' => $order['total'],
'oll_total' => $order['oll_total'],
'date_added' => $order['date_added'],
'name_region' => $region['name_region'],
'name_city' => $city['name_city']
);
}
}
}
Ошибка возникает потому, что во втором и третьем массивах отсутствует индекс firstname. Насколько я понимаю массивы:
[1] => Array
(
[name] => Сумская область
)
[2] => Array
(
[name] => Верхняя сыроватка
)
носят смысловую нагрузку, отличную от первого. Я бы в том месте где они определяются просто переопределил бы ключи, а потом в нулевой массив складывал эти элементы. А то по коду получается у вас все те же три массива на выходе, только сложены теперь в $this->data['orders']
Всё предельно просто.
Все необходимые данные у вас уже есть, нужно только построить из них массив нужного формата.
Это можно сделать одним циклом либо, например, с помощью функции array_map.
$this->data['orders'] = array_map(function($row){
$order = $row[0];
return array(
'name' => $order['firstname'] . " " . $order['lastname'],
'telephone' => $order['telephone'],
'email' => $order['email'],
'delivery_address' => $order['delivery_address'],
'comment' => $order['comment'],
'product_name' => $order['product_name'],
'model_product' => $order['model_product'],
'quantity' => $order['quantity'],
'total' => $order['total'],
'oll_total' => $order['oll_total'],
'date_added' => $order['date_added'],
'name_region' => $row[1]['name'],
'name_city' => $row[2]['city'],
);
}, $results);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Друзья здравствуйте! Вижу что данная тема еще не освещалась на русверсии данного ресурса в таком формате, по этому прошу подключиться к решению...
При установке Laravel я получаю "oops< something went wrong" и следтекст ошибки
Вставляю переменную, содержащую текст с символами переноса строки \r\n (просто \n) (пробовал <br/>) с помощью шаблонизатора LightnCandy в блок div — в результате...