получить php массив в другом виде
Подскажите как данный массив преобразовать в другой. Суть в том, что каждый тип соответствует 3 следящим значения из count и time
[type] => Array
(
[0] => type1
[1] => type2
[2] => type3
[3] => type4
)
[count] => Array
(
[0] => 10
[1] => 10
[2] => 10
[3] => 10
[4] => 10
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 10
[11] => 0
)
[time] => Array
(
[0] => 10:00
[1] =>
[2] => 11:11
[3] =>
[4] => 11:11
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
[10] => 12:00
[11] =>
)
на выходе должно получиться так:
{
"type": "type1",
"count": "10",
"time": "10:00"
},
{
"type": "type1",
"count": "10",
"time": ""
},
{
"type": "type1",
"count": "10",
"time": "11:11"
},
{
"type": "type2",
"count": "10",
"time": ""
},
{
"type": "type2",
"count": "10",
"time": "11:11"
},
{
"type": "type2",
"count": "0",
"time": ""
}
и т.д.
Ответы (1 шт):
Автор решения: Tunker
→ Ссылка
Делаем вложенный цикл по 3 записям и формируем необходимый массив
<?php
$type = Array(
'type1','type2','type3','type4'
);
$count = Array(
10,10,10,10,10,0,0,0,0,0,10,0
);
$time = Array(
'10:00','','11:11','','11:11','','','','','','12:00',''
);
$out = array();
for ($i = 0; $i < count($type); ++$i)
{
for ($j = 0; $j < 3; ++$j)
{
$out[] = array(
'type' => $type[$i],
'count' => $count[$i * 3 + $j],
'time' => $time[$i * 3 + $j]
);
}
}
print_r($out);
На выходе получаем:
Array
(
[0] => Array
(
[type] => type1
[count] => 10
[time] => 10:00
)
[1] => Array
(
[type] => type1
[count] => 10
[time] =>
)
[2] => Array
(
[type] => type1
[count] => 10
[time] => 11:11
)
[3] => Array
(
[type] => type2
[count] => 10
[time] =>
)
[4] => Array
(
[type] => type2
[count] => 10
[time] => 11:11
)
[5] => Array
(
[type] => type2
[count] => 0
[time] =>
)
[6] => Array
(
[type] => type3
[count] => 0
[time] =>
)
[7] => Array
(
[type] => type3
[count] => 0
[time] =>
)
[8] => Array
(
[type] => type3
[count] => 0
[time] =>
)
[9] => Array
(
[type] => type4
[count] => 0
[time] =>
)
[10] => Array
(
[type] => type4
[count] => 10
[time] => 12:00
)
[11] => Array
(
[type] => type4
[count] => 0
[time] =>
)
)