---
title: "Flytta på element i array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/137508-flytta-på-element-i-array"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Troxy"
published: "2005-11-13T12:26:32.000Z"
updated: "2005-11-14T12:21:46.000Z"
replies: 14
views: 706
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/137508-flytta-på-element-i-array"
---

# Flytta på element i array

## #1 — Troxy, 2005-11-13T12:26Z

Detta kanske är en onödigt enkelt fråga. Om jag har en array som ser ut såhär:

```
Array
(
   [0] => banana
   [1] => apple
   [2] => raspberry
)
```

Hur gör jag för att flytta alla element en position framåt? (PHP4)

```
Array
(
   [1] => banana
   [2] => apple
   [3] => raspberry
)
```

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

## #2 — Melea, 2005-11-13T12:28Z

```php
$fruits = array(1 => 'banana', 'apple', 'raspberry');
```

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

## #3 — Troxy, 2005-11-13T12:31Z

Men det där är ju hårdkodat...Finns det ingen färdig funktion? Eller måste jag skriva en egen? :/

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

## #4 — Matte, 2005-11-13T12:43Z

En variant/exempel:

```php
// Vår array
$fruits = array('banana', 'apple', 'raspberry');

// Ändrar första index till 1
array_unshift($fruits, '');
unset($fruits[0]);

// och så kollar vi resultatet av exemplet
echo "<pre>";
print_r($fruits);
echo "</pre>";
```

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

## #5 — Melea, 2005-11-13T12:44Z

```php
$fruits = array('banana', 'apple', 'raspberry');

foreach($fruits AS $key => $value) {
	$key++;
	$fruit[$key] = $value;
}

print('<pre>');
print_r($fruit);
print('</pre>');
```

Finns säkert något enklare sätt, men det funkar.

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

## #6 — Troxy, 2005-11-13T12:53Z

Tack så mycket.

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

## #7 — aasah, 2005-11-14T00:10Z

> **Melea skrev:**
>
> ```php
> $fruits = array('banana', 'apple', 'raspberry');
> 
> foreach($fruits AS $key => $value) {
> 	$key++;
> 	$fruit[$key] = $value;
> }
> 
> print('<pre>');
> print_r($fruit);
> print('</pre>');
> ```
>
> Finns säkert något enklare sätt, men det funkar.

Gör det verkligen det? Blir det inte:

fruits = (\[0\] =\> banana, \[1\] =\> apple, \[2\] =\> raspberry)

**Antingen, om alla index kommer med i foreach**
**Första varvet i foreach** gäller: \[0\] =\> banana
Resultat: fruits = (\[0\] =\> banana, \[1\] =\> banana, \[1\] =\> apple, \[2\] =\> raspberry) 

**Andra varvet**  gäller: \[1\] =\> banana
Resultat: fruits = (\[0\] =\> banana, \[1\] =\> banana, \[1\] =\> apple, \[2\] =\> banana, \[2\] =\> raspberry) 

**Tredje varvet** gäller: \[1\] =\> apple
Resultat: fruits = (\[0\] =\> banana, \[1\] =\> banana, \[1\] =\> apple, \[2\] =\> apple, \[2\] =\> banana, \[2\] =\> raspberry) 
...

**Eller om den enbart tar med de keys som finns i arrayen från start**   borde slutresultatet bli:
fruits = (\[0\] =\> banana, \[1\] =\> banana, \[1\] =\> apple, \[2\] =\> apple, \[2\] =\> raspberry, \[3\] =\> raspberry)

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

## #8 — Melea, 2005-11-14T06:57Z

Har du testat? Kan säkerligen vara någon inställningar i PHP om det inte funkar.
Hur som helst var det bara en variant på hur man kan gå till väga, Mattes variant är att föredra.

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

## #9 — aasah, 2005-11-14T11:50Z

> **Melea skrev:**
>
> Har du testat? Kan säkerligen vara någon inställningar i PHP om det inte funkar...

Nej, jag har inte testat. Men du kan gärna förklara hur programmet ska veta att du vill bli av de gamla key-värdena och inte bara lägga till nya?   :q

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

## #10 — Melea, 2005-11-14T12:00Z

Utan att köra loopen ser ju arrayen ut såhär:

```php
array(0 => 'banana', 1 => 'apple', 2 => 'raspberry');
```

Det loopen gör är att den plockar ut siffrorna och lägger till 1 (++) för varje gång key körs i loopen.
Alltså blir resultatet

```php
array(1 => 'banana', 2 => 'apple', 3 => 'raspberry');
```

Eller har jag missuppfattat vad du menar?

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

## #11 — aasah, 2005-11-14T12:04Z

Jag ska nog testa först... Det är något jag definitivt inte ser!

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

## #12 — Matte, 2005-11-14T12:13Z

Vad melea gör är att han skriver över till en ny array. Den nya arrayen får det utseendet Melea säger, medan den gamla finns kvar i sin ursprungliga form.

Observera skillnaden mellan $fruits och $fruit.

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

## #13 — aasah, 2005-11-14T12:17Z

OK. Bytte du namn på arrayen med flit? För i så fall förstår jag varför du säger att det funkar. Jag såg inte att du bytte namn förut.

Det jag menade var att följande program inte fungerar:

```php
<?php

$fruits = array(0 => 'banana', 1 => 'apple', 2 => 'raspberry');

print('<html><head></head><body>A: <pre>');
print_r($fruits);
print('</pre><BR><BR>');

foreach($fruits AS $key => $value) {
    $key++;
    $fruits[$key] = $value;
}

print('B: <pre>');
print_r($fruits);
print('</pre></body></html>');

?>
```

Skriver ut:

> A: 
> Array
> (
>     \[0\] =\> banana
>     \[1\] =\> apple
>     \[2\] =\> raspberry
> )
> 
> 
> 
> B: 
> Array
> (
>     \[0\] =\> banana
>     \[1\] =\> banana
>     \[2\] =\> apple
>     \[3\] =\> raspberry
> )

Vilket är något bättre än jag trodde, men första värdet ligger ju i alla fall kvar.

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

## #14 — Melea, 2005-11-14T12:18Z

Självklart bytte jag namn på arrayerna med flit. ;)
Tog för givet att du såg skillnaden i min förklaring, dumt att jag missade det.

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

## #15 — aasah, 2005-11-14T12:21Z

> **Melea skrev:**
>
> Självklart bytte jag namn på arrayerna med flit. ;)
> Tog för givet att du såg skillnaden i min förklaring, dumt att jag missade det.

Ibland läser man visst vad man tror att det står och inte vad det står...   :r

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

---

Tråden på webben: https://www.webforum.nu/amne/php/137508-flytta-på-element-i-array
