[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задачка по массивам
maxnemo
Есть ассоциативный массив:
id dig text
0 16 А
1 17 А
2 18 А
3 19 Б
4 21 В
5 22 А
6 23 Г
7 24 Г
Нужно его преобразовать в следующий массив (или создать новый):
id d_start d_end text
0 16 18 А
1 19 null Б
2 21 null В
3 22 null А
4 23 24 Г
Помогите написать оптимальный цикл, ну или подтолкните в нужном направлении какой-то общей схемой
Arh
Такой чтоль?
$data[] = array(
'id' => 0
'dig' => 16,
'text' => 'A'
);


А надо такой?

$data[] = array(
'id' => 0
'd_start' => 16,
'd_end' => 18,
'text' => 'A'
);


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
$data = array(
array(
'id' => 1,
'dig' => 16,
'text' => 'A'
),
array(
'id' => 2,
'dig' => 17,
'text' => 'A'
),
array(
'id' => 3,
'dig' => 18,
'text' => 'A'
),
array(
'id' => 4,
'dig' => 19,
'text' => 'Б'
),
array(
'id' => 5,
'dig' => 20,
'text' => 'Б'
)
);


$result = array();
$i = 0;
foreach ($data as $key => $arr) {

if(!isset($result[$i])) {

$result[$i] = array(
'id' => $arr['id'],
'd_start' => $arr['dig']
);


}

if(!isset($data[$key+1]['text']) || $arr['text'] != $data[$key+1]['text']) {

$result[$i]['d_end'] = $arr['dig'];
$result[$i]['text'] = $arr['text'];
$i++;

}

}


print_r($result);


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.