PHP Çok Boyutlu Diziler

3 Cevap php

Nasıl çok boyutlu bir diziye ürün ekleyebilirim? Temelde i insanlar çok onun bir suppermarket ve nasıl satın aldıkları hesaplayan bir uygulama yapıyorum.

Sue buys 2 tubs of butter and 1. toothpaste

John 1 şeftali ve 1 muz satın alır.

Ben dizi bu gibi bir şey düşünüyorum

$sue[butter] = array(); 
$sue[butter][] = 2;
$sue[toothpaste] = array(); 
$sue[toothpaste][] = 1;
$john[peach] = array(); 
$john[peach][] = 1;
$john[banana] = array(); 
$john[banana][] = 1;

Benim şu anki kod yalnızca öğeyi ve madde miktarı kaydedebilirsiniz.

public $items = array();

public function AddItem($product_id)
{
	if (array_key_exists($product_id , $this->items))
	{
		$this->items[$product_id] = $this ->items[$product_id] + 1;
	} else {
		$this->items[$product_id] = 1;
	}
}

Ben sadece her kişi için bir dizi içinde bu koymak için nasıl bilmiyorum.

Teşekkürler!

3 Cevap

Bunun yerine yapmanın, daha kolay bir sınıfa saklanması bulabilirsiniz. Örneğin, her kişi bir sınıf olmak var, ve sonra onları niteliklerini verir.

Eğer çok boyutlu diziler içine aldıktan sonra, sizin kodunuzu korumak için daha zor hale gelir.

Örneğin (bu pseudocode):

class Customer {
    //this is an array of FoodItem objects.
    private $foodItems[];

    // any other methods needed for access here
}

class FoodItem {
    //could be a String, or whatever it needs to be
    private $itemType;

    //the number of that item purchased
    private $numPurchased;
}

Hm, belki ben burada çok boyutluluğu görmek için başarısız?

$sue = array();
$sue['butter'] = 2;
$sue['toothpaste'] = 1;

$john = array();
$john['peach'] = 1;
$john['banana'] = 1;

Sana gösterdiğim fonksiyon yukarıda işe yarayacağını düşünüyorum.

Sen burada yaptığı gibi öğelerin sayısını tutmak için başka bir dizi oluşturmak için ihtiyacım yok:

$sue[butter] = array(); 
$sue[butter][] = 2;

Ben böyle bir şey işe düşünüyorum:

$customers[sue][butter] = 2; 
$customers[sue][toothpaste] = 1; 
$customers[john][peach] = 1; 
$customers[john][banana] = 1;

Eğer müşteri adları bir dizi oluşturmak bu şekilde. Sonra her müşteri dizide kendi ürünlerinin bir dizi var. Sonra her bir ürün müşterinin satın aldığı ürünün sayısını tutar.