$i = 0;
foreach ($orders1 as $item) {
$data['orders'][$i] = $item;
if ($item['products_id']) {
$tmp = explode(',', $item['products_id']);
$j = 0;
foreach ($tmp as $item1) {
$data['orders'][$i]['products_id'][$j] = $item1;
$this->session->set_userdata('tmp', $data['orders'][$i]['products_id'][$j]);
$j++;
}
}
$i++;
}
вот, что из себя представляет массив $orders1
Array
(
[0] => Array
(
[order_id] => 17
[user_id] => 111
[order_fio] => Fedorov Nikolay
[order_date] => 2017-03-11 09:00:33
[order_change_status] => 2017-03-11 09:00:33
[order_status] => 0
[order_adress] => Fedorov Nikolay,Fedorov Nikolay,Fedorov Nikolay
[number] => 543
[products_id] => 11,10
[discount] => 0
)
[1] => Array
(
[order_id] => 18
[user_id] => 111
[order_fio] => Fedorov Nikolay
[order_date] => 2017-03-11 09:01:13
[order_change_status] => 2017-03-11 09:01:13
[order_status] => 0
[order_adress] => Fedorov Nikolay,Fedorov Nikolay,Fedorov Nikolay
[number] => 423
[products_id] => 11,10
[discount] => 0
)
[2] => Array
(
[order_id] => 19
[user_id] => 111
[order_fio] => Fedorov Nikolay
[order_date] => 2017-03-11 09:02:27
[order_change_status] => 2017-03-11 09:02:27
[order_status] => 0
[order_adress] => Fedorov Nikolay,Fedorov Nikolay,Fedorov Nikolay
[number] => 432
[products_id] => 11,10
[discount] => 0
)
)
в $this->session->set_userdata выводится первая цифра из строки 11,10. Но я ведь строку разбил на массив из двух чисел. То есть, если я вывожу $item1, то выводится 11, а если $data['orders'][$i]['products_id'][$j], то цифра 1. Хотя строкой выше я сделал их равными
Правильно у Вас $data['orders'][$i]['products_id'] это строка '11,10', $data['orders'][$i]['products_id'][$j] - это первый элемент строки '1' который вы хотите приравнять строке.
$i = 0;
foreach ($orders1 as $item) {
$data['orders'][$i] = $item;
if ($item['products_id']) {
$tmp = explode(',', $item['products_id']); // результата [11, 10]
$j = 0;
foreach ($tmp as $item1) {
$data['orders'][$i]['products_id'][$j] = $item1; // 1 = 11 - так не работает, если вы хотите сделать products_id то надо убрать [$j], а если хотите создать новый массив айдишников, то надо записать $data['orders'][$i]['products_ids'][] = !!!
...
}
}
$i++;
}
Вообще подразумеваю, что вы ходите создать в каждом массиве свой массив айдишников.
foreach ($orders1 as $item) {
$data['orders'][$i] = $item;
if ($item['products_id']) {
$tmp = explode(',', $item['products_id']);
$j = 0;
$data['orders'][$i]['products_ids'] = [];
foreach ($tmp as $item1) {
$data['orders'][$i]['products_ids'][] = $item1;
//$this->session->set_userdata('tmp', $item1);
$j++;
}
}
$i++;
}
Результат:
Сборка персонального компьютера от Artline: умный выбор для современных пользователей