---
title: "sortering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/81164-sortering"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "ironhead"
published: "2003-07-02T20:35:56.000Z"
updated: "2003-07-10T12:26:47.000Z"
replies: 23
views: 511
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/81164-sortering"
---

# sortering

_Sida 1 av 2._

## #1 — ironhead, 2003-07-02T20:35Z

Se nedan...

Permalänk: https://www.webforum.nu/p/81164

## #2 — ironhead, 2003-07-03T14:29Z

Hur sorterar man en array mha namn i en speciell ordning?
(mySQL & PHP)

Permalänk: https://www.webforum.nu/p/1100384

## #3 — ironhead, 2003-07-04T11:25Z

Om jag har en array som ser ut såhär:

array\[0\]="Papper"
array\[1\]="Kartong"
array\[2\]="Bil"
array\[3\]="Smörgås"

Hur kan jag göra för att den skall sorteras som:

Kartong Bil Papper Smörgås

Där namnen i arrayen kan vara olika värden varje gång eller olika långa.

Vill alltså att ett speciellt namn ska ligga på en speciell plats i arrayen

Permalänk: https://www.webforum.nu/p/1100796

## #4 — Matte, 2003-07-04T21:15Z

Om jag förstått dig rätt så vill du sortera din array, men vill samtidigt att ett visst värde ska ha en bestämd position.

Testa det här:

```php
$array[0]="Papper";
$array[1]="Kartong";
$array[2]="Bil";
$array[3]="Smörgås";

function move_sort($array, $value, $position) {

   if (($key = array_search($value, $array)) === false) {
      sort($array);
      return $array;
   }
   
   unset($array[$key]);
   sort($array);
   
   array_splice($array, $position, 0, $value);
   
   return $array;

}

$array = move_sort($array, 'Kartong', 0);
```

Permalänk: https://www.webforum.nu/p/1101063

## #5 — ironhead, 2003-07-04T22:24Z

öh! Snyggt...det funkade!
...men hur faan funkar det? Jag fattar nada!

Jag vill alltså att jag oavsett hur många värden i arrayen skall kunna säga att om "Papper" finns med ska den alltid ha position \[0\] och finns Smörgås med så skall den alltid ha position \[3\] osv.

Permalänk: https://www.webforum.nu/p/1101094

## #6 — Matte, 2003-07-04T22:44Z

Först skickar jag in arrayen, värdet jag försöker placera samt vilken position jag vill placera det i arrayen, till funktionen.

Finns inte värdet i arrayen så sorteras den bara och returneras.

Finns värdet så tar jag bort det, och sorterar den resterande arrayen.
Sedan sätter jag tillbaka värdet med array_splice, för att slutligen returnera arrayen.

array_splice är att man i en array i en viss position ersätter ett antal element med en array eller ett värde.
I det här fallet: sök upp position $position och ersätt 0 (noll) element med $value.

Permalänk: https://www.webforum.nu/p/1101102

## #7 — ironhead, 2003-07-04T23:49Z

så om jag vill att Smörgås ska ha värdet \[3\] så kan jag skriva:
$array = move_sort($array, 'Smörgås', 3);
...eller?

Permalänk: https://www.webforum.nu/p/1101122

## #8 — Matte, 2003-07-05T06:27Z

> **ironhead skrev:**
>
> så om jag vill att Smörgås ska ha värdet \[3\] så kan jag skriva:
> $array = move_sort($array, 'Smörgås', 3);
> ...eller?

Japp, men kom ihåg att första positionen är 0 (noll), så detta skulle lägga Smörgås sist.

Du kan också lägga in positionen med negativa värden.
$array = move_sort($array, 'Smörgås', -1);
skulle sätta Smörgås näst sist.

Permalänk: https://www.webforum.nu/p/1101147

## #9 — ironhead, 2003-07-08T12:43Z

om jag nu har en loop som ser ut ungefär såhär:

```php
while($array = mysql_fetch_array($result))
  {
    If ($paket==$array["paket"])
    {
    }else{
     echo $array["paket"];
    }
    
     echo $array["Innnehall"];

     $paket= $array["paket"];
  }
```

datat som kommer ser ut såhär:

```
paket1 borste
paket1 kam
paket1 tandborste
paket1 rep

paket2 kalsong
paket2 tandpetare
paket2 tändare

paket 3 lampa
paket3 pizza
paket3 ägg
paket3 glass
paket3 briketter
paket3 lammstek
```

 

Hur gör jag då om jag vill ha en speciell sortering på innnehållen i paketen? Jag vill alltså kunna sätta ordningen på allt innehåll i paketen... 
får det inte att funka :(

Permalänk: https://www.webforum.nu/p/1106026

## #10 — Matte, 2003-07-08T13:21Z

Vad är det du ska ha det sorterat efter?

Permalänk: https://www.webforum.nu/p/1106048

## #11 — ironhead, 2003-07-08T13:35Z

Jag vill kunna sortera efter alla saker...om det tex. finns 10 st innehållssaker, så vill jag att om det finns ett rep i kartongen så ska det hamna först..finns det inget rep, så ska tex: sax hamna först.....sen vill jag om det finns lägga badhanduk efter den..osv osv.

Förstår du vad jag e ute efter...låter bara snurrigt när jag försöker förklara....måste vara värmen ;)

Permalänk: https://www.webforum.nu/p/1106061

## #12 — Matte, 2003-07-08T17:11Z

Det där är jag ytterst tveksam om jag förstod. 

Vill du först kunna välja/söka på några saker, och om de finns i arrayen ska de komma först, övriga saker i bokstavsordning ?

Ska det sorteras inom paketen, eller blir alltihop i en "påse" ?

Permalänk: https://www.webforum.nu/p/1106213

## #13 — ironhead, 2003-07-08T18:07Z

Vi säger såhär: Jag har 10 fasta saker i "innehållet" som jag vill sortera.....inte i bokstavsordning utan i den ordning jag vill...inte id inte i bokstavsordning utan bara i den ordning jag bestämmer....så hittar jag en sak i innehåll som heter "sax" så vill jag att den ska ha position 4 i arrayen

Jag vill alltså sätta fasta platser på valda ord.

Permalänk: https://www.webforum.nu/p/1106266

## #14 — Fredde Mannen, 2003-07-08T18:12Z

> **ironhead skrev:**
>
> Vi säger såhär: Jag har 10 fasta saker i "innehållet" som jag vill sortera.....inte i bokstavsordning utan i den ordning jag vill...inte id inte i bokstavsordning utan bara i den ordning jag bestämmer....så hittar jag en sak i innehåll som heter "sax" så vill jag att den ska ha position 4 i arrayen
> 
> Jag vill alltså sätta fasta platser på valda ord.

Får man fråga? Till vad skall detta användas? :q

Permalänk: https://www.webforum.nu/p/1106271

## #15 — ironhead, 2003-07-08T18:31Z

hehehe....struligt värre....jag vill bara ha en massa paket med en massa innehåll som jag kan bestämma ordningsföljden på..

jag vill alltså att det ska se ut såhär tex:

PAKET1
Sax Banjo Godis Tupp Gitarr Jeans

PAKET2
Sax Godis Tupp Jeans

Paket1 innehåller 6 saker paket2 4 ändå så följer det ett mönster...det ordningsmönster som jag vill sortera efter...

Permalänk: https://www.webforum.nu/p/1106283

## #16 — Matte, 2003-07-08T19:41Z

Allt jag kan se är att Sax, Godis, Tupp och Jeans kommer i samma ordning i de bägge paketen, men något mönster kan jag inte se.

Du får annars bestämma ordningen manuellt. Ta en titt i den här tråden om det kan ge dig några idéer: <http://www.webforum.nu/showthread.php?s=&threadid=79574>

Permalänk: https://www.webforum.nu/p/1106328

## #17 — ironhead, 2003-07-08T21:29Z

vad jag menade var att om inte tex Banjo & Gitarr finns med så fylls de andra namnen på ett steg åt vänster.

Permalänk: https://www.webforum.nu/p/1106388

## #18 — Matte, 2003-07-08T21:48Z

Men efter vilka utgångspunkter?

Vill du att dom som finns i paket 1 men INTE i paket 2 ska sättas först i paket 1? 
Ska paket 2 sorteras på motsvarande vis ?
Ska de andra i paket 1 sorteras i samma ordning som paket 2, eller tvärtom?
Hur kommer paket 3 in i det hela ?
Kan det finnas fler paket än 1,2 och 3 ?

Permalänk: https://www.webforum.nu/p/1106400

## #19 — ironhead, 2003-07-08T22:42Z

> Vill du att dom som finns i paket 1 men INTE i paket 2 ska sättas först i paket 1?

 

Näe, bara enligt den ord-ordningen 

> Ska paket 2 sorteras på motsvarande vis ?

 

Ja, precis som paket 1, 2 , 3, 4 osv..samma ord-följd

> Ska de andra i paket 1 sorteras i samma ordning som paket 2, eller tvärtom?

 

Alla ska sorteras efter samma ordföljd

> Hur kommer paket 3 in i det hela ? 
> Kan det finnas fler paket än 1,2 och 3 ?

 

Det kan finnas hur många paket som helst...och kan innehålla max 10 saker var.

Permalänk: https://www.webforum.nu/p/1106431

## #20 — Matte, 2003-07-09T07:51Z

Förstår fortfarande inte.

Vill du kunna bestämma att om några valda värden (t.ex Sax Godis Tupp Jeans ) finns i paketet ska de läggas i just den ordningen?

Har det någon betydelse om de ligger först eller sist bland värdena i de olika paketen?

Permalänk: https://www.webforum.nu/p/1106512

---

Tråden på webben: https://www.webforum.nu/amne/php/81164-sortering  
Nästa sida: https://www.webforum.nu/amne/php/81164-sortering/page2.md
