Sorgu ilişkisel diziler ile ilgili PHP

3 Cevap

Ben php ilişkisel diziler hakkında bir sorum var.

Ben sırasıyla 4 ve 2 adlı iki öğe var olduğu dizi şu var.

$items = array(4,2);

Şimdi ben şöyle yapılabilir ona her öğenin miktar ilişkilendirmek istiyorum:

$items['4']=23;
$items['2']=0;

hangi 23, 'madde 4s' ve hiçbir 'madde 2' var demektir.

Ama bazen $items orada ne olduğunu önceden bilmiyorsanız bu yüzden konumu bazında miktar ilişkilendirmek istiyorum. Ben item dizisinin sıfır konumu var ne olursa olsun iştirakin 23 gibi bir şey yapmak istedim:

$items['items[0]']=23;

Bu tabii ki işe yaramadı öğeleri sıfır konumda yerleştirilir olursa olsun elde etmek için onun değil doğru yolu çünkü. Herkes bana söyler misin ben nasıl yapabilirim?

3 Cevap

Sen madde ve öğelerin kullanımı kafa karıştırıcıdır. Ben bir öğe dizi ve bir ürün dizi de var hayal, başka şeyler kolayca tüylü alabilirsiniz.

Her neyse, sadece bir dizge olarak, bir değişken olarak bakın:

$items[$item[0]] = 23;

Beni bu açıklığa kavuşturalım. Yani bu gibi görünen bir dizi ile başlar:

$items = array( 0 => 4, 1 => 2 )

Ve bu gibi görünen bir dizi ile bitirmek istiyorum:?!

$items = array( 0 => 4, 1 => 2, 2 => 0, 4 => 23 )

Sana "haritası" bir tür olarak dizi kullanmak gerektiğini düşünüyorum. Madde numarası anahtar ve miktar sizin değerdir.

Arayarak

$items = array(4,2);

Oluşturduğunuz

$items[0] = 4;
$items[1] = 2;

ancak dizideki bir anahtar olarak 4 ve 2 kullanmak istiyorum. Peki yerine kullanmalısınız

$items = array( 4 => false, 2 => false );

where false stands for an item that has not yet a quantity associated (could also be e.g. -1). This creates

$items[2] = false;
$items[4] = false;

Sahte kullanırken, çağırarak atanmaz değerleri kontrol edebilirsiniz

if ($items[4] === false) {
  echo "No quantity set!";
}

Eğer madde 4. atamak istiyorsanız Ve şimdi ikinci adımı .. 23 bir miktar, sadece arama

$items[4] = 23;

Yani sizin dizinin içindeki sırasına güvenmek istiyorum sanmıyorum ..