Титла: Сортиране на nested arrays Публикувано от: Constantinff в Oct 20, 2011, 14:30 Имам масив който изглежда по следния примерен начин:
Код: Array Трябва да го подредя по следния начин 6-2-1-5-7-8-3-4 Ето и каква е логиката на подреждането. Всеки елемент има parent_id и sort, мисля че значението им се подразбира от имената на ключовете. Всички елементи са подредени според тяхната стойност на 'sort' като след всеки елемент идват неговите деца и децата на децата ... и т.н. като и те са сортирани помежду си според техните 'sort' стойности. 6,2 и 1 са с parent_id 0 , т.е. са главните, след това следват децата на 1: 5 което е с най нисък sort от децата на 1, после 7 и 8 който са деца на 5; следва 3 и 4 който са следващите деца на 1. Предполагам цялата задача ще може да се реши с доста на брой foreach, ksort, asort и другите sort, но търся възможно "по - елегантно" решение. Нядавам се някой да може да помогне Титла: Re: Сортиране на nested arrays Публикувано от: mom в Oct 20, 2011, 19:26 Привет,
Виж http://php.net/usort, само callback функцията ще трябва да ти е с малко повече условия, т.е. да гледа стойностите на parent_id и sort Питанка - тези данни вероятно ги влечеш от DB. Ако да, защо не си ги ORDER BY parent_id, sort още в SQL заявката? Титла: Re: Сортиране на nested arrays Публикувано от: niakoi в Oct 21, 2011, 11:32 Привет,
на @mom предложението + вложени масиви: Код: $arr[$parentId][] = array('id' => $id, 'title' => $title); поздрави нас |