değişen çok boyutlu karışık ilişkisel / sayısal dizi

1 Cevap php

i er daha sonra düzeltilmesi gereken bir sorun var. i would tüm komut dosyasını yeniden yazmak için zaman vardı, ama bir programcı yaşam hakkı, böyle olur? Anywho, ben bir proje üzerinde aldım ve ben bu yüzden gibi çok boyutlu bir karma ilişkisel / sayısal dizi var:

Array
(
    [item1] => Array
        (
            [dataset] => Array()
            [3] => Array()
            [7] => Array()
        )
    [item2] => Array
        (
            [dataset] => Array()
            [4] => Array()
            [19] => Array()
            [2] => Array()
        )
)

ne yapmam gerekir bu sonuç için son göstergesi olarak itemX indekslerinin her dataset endeksi kayması olduğunu:

Array
(
    [item1] => Array
        (
            [3] => Array()
            [7] => Array()
            [dataset] => Array()
        )
    [item2] => Array
        (
            [4] => Array()
            [19] => Array()
            [2] => Array()
            [dataset] => Array()
        )
)

Bu gerçekleşmesi yardımcı olabilecek birkaç şey her zaman 'olacak i know that the dataset indeks her zaman itemX endeksi ve anahtarı ilk endeks olacak olması veri kümesi 've diğerleri hepsi her zaman sayısal indeksler olacaktır. php bunu yapmak için yine de var mı? karma bir dizi olduğunu aslında beni atıyor. i sayısal indeksler sıfırlama alma ve 0'dan başlayan olamaz. onlar sipariş kaydırılır iseniz önemli değil, hepsi 'DataSet' index önce gelen sadece bu. \ herhangi bir öneri ya da yorum büyük takdir edilmektedir: belki de sadece o günlerden biridir .... bulunuyor.

1 Cevap

Bu gibi tüm unsurları olsa döngü:

foreach ($all_items as $key =>$items) {
   $dataset = $items['dataset'];
   unset($all_items[$key]['dataset']); // Removing it (from the top)
   $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom)
}

"Kümesi" öğesi unsetting ve tekrar ekleme elemanının altındaki eklenecek neden olur.

Bu değişiklikler orijinal diziyi etkilemez çünkü, sen foreach dan $ öğeleri, doğrudan orijinal diziyi değil değiştirmek önemlidir.