";
// TEST DATA FROM THE POST AT EE
$data[] = array('name' => «h», блок => «списка» (1.2));
$data [] = блок (блок => «списка»» => ««имени g», (1));
$data [] = блок (блок => «списка»» => ««имени a», (1.3));
$data [] = блок (блок => «списка»» => ««имени f», (2));
$data [] = блок (блок => «списка»» => ««имени e», (2.3));
$data [] = блок (блок => «списка»» => ««имени b», (3));
$data [] = блок (блок => «списка»» => ««имени c», (1.2.3.4));
$data [] = блок (блок => «списка»» => ««имени d», (3.4));
// ФУНКЦИЯ, КОТОР БУДЕТ СРАВНИВАТЬ ИМЯ
cmp_name функции ($a, $b)
{
если (== $b $a [«имени»] [«имя»]) возвращение 0;
возвратите ($a [«имя»] <> $arr)
{
$test [$ptr] [«группа»] = взрывают ('', $arr [«список»]);
если (strlen ($test [$ptr] [«группа»]) > $maxlen) $maxlen = strlen, то ($test [$ptr] [«группа»]);
}
ПУСКОВАЯ ПЛОЩАДКА // ГРУППЫ К ПОСЛЕДОВАТЕЛЬНОЙ ДЛИНЕ
foreach ($test как => $arr $ptr)
{
$test [$ptr] [«группа»] = str_pad ($test [$ptr] [«группа»], $maxlen+1, «0»);
}
ВИД // НА ГРУППАХ
usort ($test, «cmp_group ");
// ИЗВЛЕКАЕТ ГРУППЫ (ЕСЛИ НЕОБХОДИМО), ТО
foreach ($test как => $arr $ptr)
{
unset ($test [$ptr] [«группа»]);
}
ВЫСТАВКА // ПРОДУКТ РАБОТЫ
var_dump ($test);
|