Формирование нового массива

Diana95

Новичок
Да что-то вроде того, как назвал это препод многомерная группировка.
 

Diana95

Новичок
Я его убью, но наконец-то последнее задание, теперь массив в виде
$array= array(
0=>array("name"=>"Ivan", 'id'=>5, 'city' => 'Piter'),
1=>array("name"=>"Ivan", 'id'=>10, 'city' => 'Moscow'),
2=>array("name"=>"Sergei", 'id'=>3, 'city' => 'Piter'),
3=>array("name"=>"Ivan", 'id'=>4, 'city' => 'Piter'));

И если я задаю $key = array('city','name');, то должен отсортировать сначала по городам, например, Piter следом всех по именам, т.е. все Ivan и Sergei, которые в этом городе живут и там дальше как было, т.е. просто ещё один уровень добавился. НО! надо придумать, чтобы программа при дальнейших добавлениях новых полей снова формировалась не только как сейчас 2-х уровневый, т.е. была универсальной.

P.S. Для тех кто решит эту задачу, оставьте номер своего кошелька в долгу не останусь.
 
Последнее редактирование:

Diana95

Новичок
Если что вот мой код полностью
PHP:
<?php
function resort($array, $key){
$res = array();
      foreach($array as $el){
//      if($el[$key] == $el[$key])
            $res[$el[$key]][] = $el;
      }
    return isset($res) ? $res : false;
}
$array= array(
    0=>array("name"=>"Ivan", 'id'=>5, 'city' => 'Piter'),
    1=>array("name"=>"Ivan", 'id'=>10, 'city' => 'Moscow'),
    2=>array("name"=>"Sergei", 'id'=>3, 'city' => 'Piter'),
    3=>array("name"=>"Ivan", 'id'=>4, 'city' => 'Piter'));
$key = array('city','name'); //вот собственно форма по которой будет идти группировка
$res=resort($array, 'name');
function myCmp($a, $b) {
    if ($a['id'] === $b['id']) return 0;
    return $a['id'] > $b['id'] ? 1 : -1;
}
foreach($res as &$value){
    uasort($value, 'myCmp');
}
echo '<pre>' . print_r($res,1) . '</pre>';
?>
 

Diana95

Новичок
Видимо сложная задача..... ладно сама как-нибудь попробую.
 

keltanas

marty cats
Лучше бы предложила сиськи показать. Было бы больше желающих ;)
 

HraKK

Мудак
Команда форума
Готов решать задачи за сисечки, любой сложности)
 
Сверху