В голову ничего хорошего кроме бреда не идет
....
//функция сортировки
function sort_in_custom_order($array,$order){
...
}
// порядок согласно которому будет происходить сортировка
$order = array(
2,5,4,3,1
);
// массив который нужно отсортировать
$array = array(
'test'=>'проверка',
'hello'=>'Vasia',
'world'=>'Pupkin',
'a'=>1,
'b'=>2
);
$result = sort_in_custom_order($array,$order);
// желаемый результат
array(
'hello'=>'Vasia',
'b'=>2,
'a'=>1,
'world'=>'Pupkin',
'test'=>'проверка'
);
Спустя 2 минуты, 4 секунды (26.03.2011 - 22:43) alex12060 написал(а):
В заданном? Тогда передавай как массив параметры сортировки, и уже внутри парсируй.
Спустя 5 минут, 6 секунд (26.03.2011 - 22:48) cremnet написал(а):
Цитата (alex12060 @ 26.03.2011 - 19:43) |
В заданном? Тогда передавай как массив параметры сортировки, и уже внутри парсируй. |
живой пример пожалуйста
....
наверное я не в том разделе тему открыл
Спустя 2 часа, 1 минута, 7 секунд (27.03.2011 - 00:49) Trianon написал(а):
нет никакой корреляции между указанными массивами.
То есть, она, конечно, есть.
Но человек, знающий, как нумеруются элементы в массивах, имеет полное право считать, что её нет.
То есть, она, конечно, есть.
Но человек, знающий, как нумеруются элементы в массивах, имеет полное право считать, что её нет.
Спустя 14 часов, 8 минут, 6 секунд (27.03.2011 - 13:57) cremnet написал(а):
Цитата (Trianon @ 26.03.2011 - 21:49) |
нет никакой корреляции между указанными массивами. То есть, она, конечно, есть. Но человек, знающий, как нумеруются элементы в массивах, имеет полное право считать, что её нет. |
бр... ничего не понял... но спасибо, проблему решил))) пиво помогло... правда результат меня не радует но если кому интересно
function sort_custom_order($array,$order){
$new = array();
foreach($array as $k=>$v){
list($i,$n) = each($order);
$new[$n][$k]=$v;
}
ksort($new);
$array = array();
foreach($new as $a){
list($k,$v) =each($a);
$array[$k]=$v;
}
return $array;
}
мож у кого идеи есть как сделать это красивее?
Спустя 15 минут, 6 секунд (27.03.2011 - 14:12) Trianon написал(а):
function sort_in_custom_order($array,$order) {
$keys = array_keys($array); $values = array_values($array);
$array = array();
foreach($order as $j) $array[$keys[$j-1]] = $values[$j-1];
return $array;
}