---
title: "unset/ta bort data ur en multidiminensionell array..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/185222-unset-ta-bort-data-ur-en-multidiminensionell-array"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "webb"
published: "2010-11-12T09:57:59.000Z"
updated: "2010-11-16T11:37:27.000Z"
replies: 6
views: 802
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/185222-unset-ta-bort-data-ur-en-multidiminensionell-array"
---

# unset/ta bort data ur en multidiminensionell array...

## #1 — webb, 2010-11-12T09:57Z

Hej,

Jag har skapat en enkel varukorg med hjälp av session vektor, utvalda produkter lagras i tabellen. Hittills har jag inga problem!

Jag önskar kunna ta bort (med hjälp av x) enskild produkt från tabellen/vektorn, men jag kommer inte åt den.

Är det någon SESSION-expert som kan hjälpa till?

Tack i för hand!

Utskrift av tabellen/session vektor:
Art01   produkt_1   antal_1   pris_1   bild_1   x
Art02   produkt_2   antal_2   pris_2   bild_2   x
Art03   produkt_3   antal_3   pris_3   bild_3   x
Art04   produkt_4   antal_4   pris_4   bild_4   x

Koden:
$\_SESSION\["varukorg"\]\[\] = array(

 "artikel" =\> $\_SESSION\['artikel'\],
 "produkt" =\> $\_SESSION\['produkt'\],
 "antal" =\> $\_SESSION\['antal'\],
 "pris" =\> $\_SESSION\['pris'\],
 "image_cart" =\> $\_SESSION\['image'\]
 );     

foreach($\_SESSION\['varukorg'\] as $cart)
{
echo "\<p\>" . $cart\['artikel'\] . "\</p\>";
echo "\<p\>" . $cart\['produkt'\] . "\</p\>";
echo "\<p\>" . $cart\['antal'\] . "\</p\>";
echo "\<p\>" . $cart\['pris'\] . "\</p\>";
echo "\<p\>\<a href=#\>\<img src=\\"/images/produkter/ $cart\['image_cart'\] \\" width=100 height=100/\>\</a\>\</p\>";
echo "\<p\>\<a href=#\>Ta bort\</a\>\</p\>";
}

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

## #2 — aron, 2010-11-12T12:56Z

Funkar det inte att använda:

```
unset($_SESSION['varukorg''][x])
```

Se info under "Useful functions" på:
<http://php.net/manual/en/language.types.array.php>
<http://www.neowin.net/forum/topic/420778-php-array-delete-row/>
<http://www.satya-weblog.com/2009/10/php-session-array.html>

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

## #3 — webb, 2010-11-12T13:46Z

> **[aron skrev:](https://www.webforum.nu/p/1522578)**
>
> Funkar det inte att använda:
> 
>
>
> ```
> unset($_SESSION['varukorg''][x])
> ```
>
> 
> 
> Se info under "Useful functions" på:
> <http://php.net/manual/en/language.types.array.php>
> <http://www.neowin.net/forum/topic/420778-php-array-delete-row/>
> <http://www.satya-weblog.com/2009/10/php-session-array.html>

Tack för svaret!

Nej det funkar inte, jag har test enligt följande:

$art = $cart\['artikel'\];
echo "\<a href=varukorg.php?del_cart=0\>Ta bort\</a\>";

if(isset($\_REQUEST\['del_cart'\])) {		  		  	  		  	  
	unset($\_SESSION\['varukorg'\]\['$art'\]);		  	
  }

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

## #4 — aron, 2010-11-15T01:34Z

> **[webb skrev:](https://www.webforum.nu/p/1522590)**
>
> Tack för svaret!
> 
> Nej det funkar inte, jag har test enligt följande:
> 
> $art = $cart\['artikel'\];
> echo "\<a href=varukorg.php?del_cart=0\>Ta bort\</a\>";
> 
> if(isset($\_REQUEST\['del_cart'\])) {		  		  	  		  	  
> 	unset($\_SESSION\['varukorg'\]\['$art'\]);		  	
>   }

x ska väll inte var = '$art' utan nyckeln som används av arrayen. Om du inte använder t.ex. art. numret när du lägger in dem (du gjorde inte det i exemplet utan bara \[\]) så får dom väll 0..n som nummer.

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

## #5 — MickeA.com, 2010-11-15T06:10Z

För att ha lite ordning och för en bättre funktion (som aron ovan också påpekar) så får du använda **artikel-id** som nyckel för din array:

```php
$varukorg[$artnum] = array(
  "id" => $artnum,
  "namn" => "Artikelnamn",
  "antal" => 1,
  ...
);
```

När du t.ex. lägger till en produkt, får du kolla om varan redan finns i vaukorgen och ist. ändra antal av den med:

```php
$artnum = $_GET['artnum'];
$namn = $_GET['namn'];
if(isset($varukorg[$artnum])){
   // ändra antal istället för att lägga till produkten:
   $varukorg[$artnum]["antal"] += 1;

}else{
   // varan finns _inte_ sedan tidigare, lägg till den:
   $varukorg[$artnum]["id"] = $artnum;
   $varukorg[$artnum]["namn"] = $namn;
   $varukorg[$artnum]["antal"] = 1;
}
```

På samma sätt om du ändrar antal av en vara "nedåt":

```php
$artnum = $_GET['artnum'];
if(isset($varukorg[$artnum])){
   $varukorg[$artnum]["antal"] -= 1;
}
```

Och när du tar bort:

```php
$artnum = $_GET['artnum'];
if(isset($varukorg[$artnum])){
   unset($varukorg[$artnum]);
}
```

Nu har du en del kod att bygga vidare på. Lycka till,

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

## #6 — webb, 2010-11-16T08:19Z

Tack för hjälpen, nu funkar det!

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

## #7 — MickeA.com, 2010-11-16T11:37Z

..och så vore det toppen om du trycker "Markera som lösning" på mitt inlägg ovan om det var det som hjälpte dig på traven!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/185222-unset-ta-bort-data-ur-en-multidiminensionell-array
