---
title: "Sortering i array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/191394-sortering-i-array"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Mycodez"
published: "2013-05-30T16:07:44.000Z"
updated: "2013-06-03T08:24:42.000Z"
replies: 2
views: 1927
page: 1
pages: 1
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/191394-sortering-i-array"
---

# Sortering i array

## #1 — Mycodez, 2013-05-30T16:07Z

Hej, jag har fått ett problem, jag vill göra en sortering i en array. så nu hoppas jag att ni kan hjälpa mig med detta.

den arrayen jag vill sortera kan se ut så här typ, men alla ska sorteras på samma sak.

```php
Array
(
    [0] => Array
        (
            [id] => 15
            [uid] => 1
            [title] => Egenföretagare
            [summary] => jag är egenföretagare	
            [start-date] => 2013-3-1
            [end-date] => 
            [is-current] => 1
            [company] => Robin Kardell
        )

    [1] => Array
        (
            [id] => 12
            [uid] => 1
            [title] => Reklamutdelare
            [summary] => Jobbat som reklamutdelare då jag hade ett angivet området jag skulle se till att det delades ut reklam till.	
            [start-date] => 2007-8-16
            [end-date] => 2012-6-13
            [is-current] => 0
            [company] => Svenskdirekt reklam
        )

    [2] => Array
        (
            [id] => 13
            [uid] => 1
            [title] => Bemanningspersonal
            [summary] => Var bemanningspersonal för Uniflex på Jeld Wen i Forserum då jag jobbade som ramsnickare.	
            [start-date] => 2012-6-1
            [end-date] => 2012-8-20
            [is-current] => 0
            [company] => Uniflex
        )

)
```

Hur jag vill sortera denna array är så här.
Är is-current = 1 så vill jag sortera det på när man började detta, ju nyare då är det överst. 
är is-current = 0 så vill jag sortera på när man började arbetet och sen vill jag sortera på det när man sluta slutade det, allt de nyaste händelserna ska vara överst.

Hoppas ni kan hjälpa mig med detta 

jag funderat lite på att göra en bubble sort 
det skriptet jag hitta som jag inte riktigt fatta, men kan man väll användra detta bara mna göra om det till hur jag vill ha det, men då är frågan hur jag jag det 

```php
function bubbleSort ($items) {
$size = count($items);
 for ($i=0; $i<$size; $i++) {
	 for ($j=0; $j<$size-1-$i; $j++) {
		 if ($items[$j+1] < $items[$j]) {
			 arraySwap($items, $j, $j+1);
		  }
		}
	 }
	return $items;
}
function arraySwap (&$arr, $index1, $index2) {
	list($arr[$index1], $arr[$index2]) = array($arr[$index2], $arr[$index1]);
 }
```

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

## #2 — Mycodez, 2013-06-02T22:20Z

Ingen som har en idé på hur man ska kunna lösa detta? :/

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

## #3 — Mycodez, 2013-06-03T08:24Z

Jag har nu lyckats med att få till sortering, med lite eftertanke så hade jag gjort det svårare för mig än var det var. Men ibland e man lite dum :P

men här är min lösning

```php
function invenDescSort($item1,$item2)
				{
				    if ($item1['start-date'] == $item2['start-date']) return 0;
				    return (strtotime($item1['start-date']) < strtotime($item2['start-date'])) ? 1 : -1;
				}
				usort($Positions,'invenDescSort');
				//echo '<pre>',print_r($Positions),'</pre>';
				function invenDescSort1($item1,$item2)
				{
				    if ($item1['end-date'] == $item2['end-date']){
				    	return 0;
					}else if($item1['is-current']){
						return 0;
					}
				    return (strtotime($item1['end-date']) < strtotime($item2['end-date'])) ? 1 : -1;
				}
				usort($Positions,'invenDescSort1');
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/191394-sortering-i-array
