---
title: "Arrayer i en array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192800-arrayer-i-en-array"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "oskars"
published: "2015-10-21T07:36:43.000Z"
updated: "2015-10-28T12:17:42.000Z"
replies: 7
views: 1200
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/192800-arrayer-i-en-array"
---

# Arrayer i en array

## #1 — oskars, 2015-10-21T07:36Z

Hej på er :)

Blir inte klok på detta. Hur skapar jag en sån här array från data som loopas ut från MySQL?

```php
$cart = array(
    array(
        'reference' => '123456789',
        'name' => 'T-shirt',
        'quantity' => 2,
        'unit_price' => 12300,
        'discount_rate' => 1000,
        'tax_rate' => 2500
    ),
    array(
        'reference' => '987654321',
        'name' => 'Byxor',
        'quantity' => 2,
        'unit_price' => 22300,
        'discount_rate' => 1000,
        'tax_rate' => 2500
    ),
    array(
        'type' => 'shipping_fee',
        'reference' => 'SHIPPING',
        'name' => 'Shipping Fee',
        'quantity' => 1,
        'unit_price' => 4900,
        'tax_rate' => 2500
    )
);
```

Tacksam för hjälp!

EDIT: Det är en kundvagn som ska loopas ut för integration till Klarna.

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

## #2 — metalboy, 2015-10-21T08:13Z

Hur ser din kod ut för att hämta ut datat från MySQL? Använder du PDO eller mysqli? Eller använder du de gamla mysql-funktionerna? Om du använder PDO eller mysqli så finns det inbyggda metoder för att hämta alla rader ur ett resultat (PDOStatement::fetchAll respektive mysqli_result::fetch_all). Använder du de gamla mysql-funktionerna loopar du igenom resultaten och lägger till varje rad i arrayen.

Exempel PDO

```php
// Här behövs kod för att definiera $pdo...
$stmt = $pdo->prepare('SELECT * FROM table WHERE column=?');
if ($rows = $stmt->execute(array('some value')) {
    $array = $rows->fetchAll();
}
print_r($array);
```

Exempel mysqli

```php
// Här behövs kod för att definiera $mysql...
if ($result = mysqli->query('SELECT * FROM table')) {
    $array = $result->fetch_all();
}
print_r($array);
```

Exempel med de gamla mysql-funktionerna

```php
// Här behövs kod för att ansluta till databasen...
$result = mysql_query('SELECT * FROM table');
$array = array();
while ($row = mysql_fetch_assoc($result)) {
    $array[] = $row;
}
print_r($array);
```

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

## #3 — oskars, 2015-10-21T08:31Z

Tack!!

Denna koden:

```php
$sql = "SELECT * FROM minKundvagn WHERE customer_id = '".$_COOKIE['customer_id']."'";
	$result = $conn->query($sql);

	if ($result->num_rows > 0) {
		while($row = $result->fetch_assoc()) {
			
			$kundvagn[] = array(
							'reference' => $row['ID'],
							'name' => $row['Product'],
							'quantity' => $row["Antal"],
							'unit_price' => $row['Price']*100,
							'discount_rate' => 0,
							'tax_rate' => 2500
							);
			
		}
	}
        header('Content-type: text/plain');
	echo '<pre>'; print_r($kundvagn); echo '</pre>';
```

Ger mig detta resultatet:
       

```php
	Array (
		[0] => Array
			(
				[reference] => 98320
				[name] => 496
				[quantity] => 1
				[unit_price] => 16900
				[discount_rate] => 10000
				[tax_rate] => 2500
			)

		[1] => Array
			(
				[reference] => 98308
				[name] => 373
				[quantity] => 1
				[unit_price] => 27900
				[discount_rate] => 10000
				[tax_rate] => 2500
			)

	);
```

Arrayen ser ju inte ut att vara i det formatet jag visade i första inlägget. Men det kanske inte ska spela någon roll i detta fallet?

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

## #4 — metalboy, 2015-10-21T08:39Z

Jag tycker att den ser ut att vara i exakt samma format som du skrev i första inlägget förutom att du inte har tagit med alla nycklar i dimension 2 i arrayen. Du har också valt att lägga in heltal istället för strängar som värden i index 'name'.

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

## #5 — oskars, 2015-10-21T08:55Z

Jo det är heltal där nu ja... Behöver jag använda '$text' för att det ska bli korrekt med textsträng?

Har textat med '".$text."' men får det inte att fungera.

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

## #6 — metalboy, 2015-10-21T10:10Z

Du behöver inte göra någonting, om $text innehåller en sträng så kommer det att bli en sträng i arrayen. Om $text innehåller ett heltal så blir det ett heltal i arrayen.

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

## #7 — prplxr, 2015-10-22T07:51Z

> **[oskars skrev:](https://www.webforum.nu/p/1573522)**
>
> Jo det är heltal där nu ja... Behöver jag använda '$text' för att det ska bli korrekt med textsträng?
> 
> Har textat med '".$text."' men får det inte att fungera.

Det där lyckades jag inte riktigt klura ut vad du menade med. Var är $text? Är jag blind?

> **[metalboy skrev:](https://www.webforum.nu/p/1573523)**
>
> Du behöver inte göra någonting, om $text innehåller en sträng så kommer det att bli en sträng i arrayen. Om $text innehåller ett heltal så blir det ett heltal i arrayen.

Jag brukar inte våga lite på att den automagiska typecastingen fungerar som jag tänkt. Om man är osäker kan man alltid se ifall det är ett numeriskt värde i en textsträng med is_numeric() och om det visar sig vara det kan man casta om den manuellt med (int) $text.

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

## #8 — oskars, 2015-10-28T12:17Z

Äh glöm :D Förvirrade mig lite!

Det fungerar jättebra. Tack för hjälpen!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/192800-arrayer-i-en-array
