webForumDet fria alternativet

Omplasering i en Array

PHPur PHP

3 svar · 428 visningar · startad av Mr T

Medlem sedan maj 20071 061 inlägg
Frågan#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!

Medlem sedan mars 20041 505 inlägg
Medlem sedan feb. 2007278 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);
    }
}
Medlem sedan maj 20071 061 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.

133 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)