webForumDet fria alternativet

Omplasering i en Array

3 svar · 428 visningar · startad av Mr T

Mr TMedlem sedan maj 20071 147 inlägg
#1

Har en array med värden och vill att ett av dessa värden nu alltid ska läggas först i listan. Hur gör jag ?

Om ni undrar varför jag inte lade in det önskade värdet från början först i arrayen, beror det på att talen tas från en databas. Kommer inte det önskade värdet med läggs det in i efterhand. Värdet kan altså befinna sig var som helst i arrayen.

Tacksam för hjälp!

TroxyMedlem sedan mars 20041 508 inlägg
itpastornMedlem sedan feb. 2007280 inlägg
#3

Först undrar jag om inte ditt problem bäst löses med en sortering av databasresultatet?

Om så inte är fallet så verkar du kunna ha tre scenarion, om jag förstått dig rätt:

1. Det önskade värdet återfinns först (som det skall vara)
2. Det önskade värdet finns inte med alls
3. Det önskade värdet finns, fast på fel plats.

Om jag fatta detta rätt, så torde följande fungera i princip.

<?php
$first = "foo"; // Önskat förstavärde
if ( $first != $array[0] ) {
    $position = array_search($first, $array);
    if (  false === $position ) {
        array_unshift($array,$first);
    } else {
        array_splice($array,$position,1); // Tar bort värdet från fel plats
        array_unshift($array,$first);
    }
}
Mr TMedlem sedan maj 20071 147 inlägg
#4

Tack!
Den var smidig och fin.
Har testat med array_unshift och än så länge verkar det funka fint. Dock har jag mycket kvar så det kan hända att din snygga lösning måste till i slutändan.

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb