Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: array_multisort kysymys

asgnm [09.02.2008 21:33:41]

#

Miksi tälläisessä sortissa "$key" arvo muuttuu nollaksi vaikka se on määritetty ykköseksi, kakkonen muuttuu ykköseksi jne... Jos taas "$key:n" määrittää esim. p1, p2, p3, p4 niin toimii normaalisti ? Onko jotain kikkaa jolla $key arvot sais pysymään noin niinkun esimerkissä on?

<?php

$array = array(
  "1" => array( 'id' => 1 , 'position' => 4 ),
  "2" => array( 'id' => 2 , 'position' => 3 ),
  "3" => array( 'id' => 3 , 'position' => 2 ),
  "4" => array( 'id' => 4 , 'position' => 1 ),
);

foreach ($array as $key => $row){
  $arrem[$key] = $row['position'];
}

array_multisort($arrem, SORT_ASC, $array);

echo "<pre style=\"font-size:10px;\">";
print_r($array);
echo "</pre>";

?>

Antti Laaksonen [09.02.2008 22:35:15]

#

Millä tavalla haluaisit siis järjestää tuon taulukon?

Varmasti tuohon voi keksiä jonkin ratkaisun. Jos p-kirjain auttaa, niin taulukon avainten eteen voi lisätä p-kirjaimen ennen lajittelua ja poistaa sen lajittelun jälkeen:

foreach ($array as $key => $row) {
    $array["p" . $key] = $row;
    unset($array[$key]);
}

// lajittelu

foreach ($array as $key => $row) {
    $array[substr($key, 1)] = $row;
    unset($array[$key]);
}

asgnm [10.02.2008 00:04:24]

#

Kiitos paljon Antti ! Juurikin noilla alkoi toimimaan oikein. Kyse on siis järjestelystä ton $row['position'] mukaisesti ykkönen ekana jne..

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta