2012-06-02 22 views
5

Aşağıdaki diziye sahibim. $myArray[]'un son öğesi için list[]'a bir eleman eklemenin en iyi yolu ne olurdu? list[]'un sayısal indekslere (yani, ilişkisel olmayan) sahip olduğunu unutmayın. Teşekkürler!Dizinin son elemanına öğe eklenmesi

$myArray[] = array('name' => 'hello', 'list' => array()); 
+1

Sorunuz biraz belirsiz. Sonuçlarınızın neye benzemesi gerektiği ile ilgili bir örnek verebilir misiniz? –

cevap

5

$ myArray Eğer dizi göstericisi konumunu değiştirmek bu yöntemle

array_push($myArray[count($myArray)-1]['list'], 'new element'); 

veya

$myArray[count($myArray)-1]['list'][] = 'new element'; 

ilişkisel değilse.

+0

Evet, bu muhtemelen işe yarayacak. Son kullandığınızda son() – user1032531

+0

kullanarak temiz bir çözüm olup olmadığını bilmiyordum, bir referans değil, son değerin bir kopyasını alırsınız. Yani değeri değiştirirseniz diziyi etkilemez. Eğer 'end' kullanırsanız, önce onu aramak zorundasınız, sonra son elemanın anahtarını almak için 'key' kullanın ve sonra diziyi değiştirebilir. Eğer '$ myArray' ilişkisel değilse, bunu yapmak isteyebilirsiniz. – clentfort

+0

Teşekkürler !!!!!!!!!! – user1032531

4

Böyle yapabilirsiniz:

$last = array_pop($myArray); // remove last element of array 
$last['list'][] = "new element"; // add element to array 
$myArray[] = $last; // add changed last element again 
+0

Bunun işe yarayacağı anlaşılıyor. Teşekkürler. – user1032531

-2

array_push fonksiyon bu işi.

array_push() 
+0

[PHP manual] (http://php.net/manual/en/function.array-push.php) 'den sonra bu, $ array [] = $ var; 'ile aynı etkiye sahiptir. onun kodu zaten. Bu yüzden bunu aradığını sanmıyorum. – noob

1
$myArray[count($myArray)-1]['list'][]="something to go in 'list' array";//this shall append 
//to the second dimension array with keyname 'list' 
+0

$ myArray [0] yerine, $ myArray öğesinin son elemanına işaret etmeli, 0 – user1032531

+0

Ah, benim kötüyüm. Düzenlememi kontrol et. –

+0

Gotcha. Clenfort ile aynı çözüm. Teşekkürler! – user1032531

0

var (Bence) daha güzel bir yolu aslında şudur: $ ref görebileceğiniz gibi

$ref = &$myArray[]; 
$ref['list'][] = 'new item' 

- $ myArray son elemente gönderme, yani son değiştirebilir $ ref değiştirerek öğe;