Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: sortowanie tablic

mam takie dwa zapytania


$arr_1 = $this -> MysqlGetArray("SELECT * FROM modules_desc WHERE act='1' AND " . $where . " ORDER by datepub DESC LIMIT 5");
$arr_2 = $this -> MysqlGetArray("SELECT * FROM gallery WHERE act='1' AND news_left=1 ORDER by datepub DESC LIMIT 5");



potem robie


$a=array_merge($arr_1,$arr_2);


i mam ładną tablicę $a z danymi z obu tabel.

teraz wynik chciałbym posortować od najnowsze do najstarszej według datepub, próbowałem

array_multisort($a['datepub'], SORT_DESC, $a);

ale coś nie działa ma ktoś jakiś pomysł.

konto usunięte

Temat: sortowanie tablic

usort
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: sortowanie tablic

a gdzie w usort ustalam kolumnę względem której mam sortowac?

Temat: sortowanie tablic

Poczytaj sobie o takim poleceniu: UNION.
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: sortowanie tablic

ok znalazłem coś takiego chyba śmiga:


function multiSort() {
//get args of the function
$args = func_get_args();
$c = count($args);
if ($c < 2) {
return false;
}
//get the array to sort
$array = array_splice($args, 0, 1);
$array = $array[0];
//sort with an anoymous function using args
usort($array, function($a, $b) use($args) {

$i = 0;
$c = count($args);
$cmp = 0;
while($cmp == 0 && $i < $c)
{
$cmp = strcmp($a[ $args[ $i ] ], $b[ $args[ $i ] ]);
$i++;
}

return $cmp;

});

return $array;

}
Piotr Stanek

Piotr Stanek Programista PHP /
JS developer

Temat: sortowanie tablic

znam union ale w tym przypadki nie mogę ruszac zapytań.

konto usunięte

Temat: sortowanie tablic

P S:
a gdzie w usort ustalam kolumnę względem której mam sortowac?

Bez jaj. Przeczytałeś co robi usort?
Prościej się już nie da.

To co znalazłeś, to jakiś przerost formy.

konto usunięte

Temat: sortowanie tablic

nie lepiej zrzucić takie operacje na bazę danych?

pytanie z ciekawości, czemu nie możesz 'ruszać' zapytań?

konto usunięte

Temat: sortowanie tablic

usort($data_list, 'usortDatePub');

function usortDatePub($a, $b) {
if (!isset($a['datepub']) || !isset($b['datepub'])) {
return false;
}
if ($a['datepub'] == $b['datepub']) {
// mozesz posortować wg innej kolumny jeśli te same daty }
return (strtotime($a['datepub']) > strtotime($b['datepub'])) ? -1 : 1;
}

Następna dyskusja:

sortowanie tablic i polskie...




Wyślij zaproszenie do