Keşke gibi PHP array_merge_recursive çalışmıyor

1 Cevap php

Yani temelde ben birleştirmek istiyorum bu iki diziler var ...

array(1) { 
    ["first"]=>  
    array(1) { 
        ["second"]=>  
        array(0) { 
        } 
    } 
} 

array(1) { 
    ["second"]=>  
    array(1) { 
        ["third"]=>  
        array(0) { 
        } 
    } 
}

Ve bu ben başarmak istiyorum sonuç ...

array(1) { 
    ["first"]=>  
    array(1) { 
        ["second"]=>  
        array(1) {
            ["third"]=>  
            array(0) { 
            } 
        } 
    }  
}

Ama $arr = array_merge_recursive($arr1, $arr2) Ben bu çıktıyı almak kullanarak:

array(2) { 
    ["first"]=>  
    array(1) { 
        ["second"]=>  
        array(0) { 
        } 
    } 
    ["second"]=>  
    array(1) { 
        ["third"]=>  
        array(0) { 
        } 
    } 
} 

Den ne anlamak array_merge_recursive bana istediğimi olsun, ama görünüşe göre değil gerekir. Ne benim problem için bir çözüm olurdu?

Teşekkürler

1 Cevap

Diziler aynı 'düzeyleri' üzerinde birleştirilir. Sizin diziler, aynı seviyede 'ikinci' ile 'ilk' ve diğer üst düzey bir değer ile bir örtüşen değildir. Bu yüzden üst düzeyde iki dizide yeni bir dizi ile sonuçlanır.

İstediğiniz sonuca ulaşmak için, doldurmanız gerekiyor

array_merge_recursive($arr1['first'], $arr2)

Sonra maç ve beklentilerine eşit kombine olacak.

Ayrıca yinelemeli diziler maç ve oradan array_merge_recursive diyoruz seviyesini bulma diziler aracılığıyla yürür bazı işlev yazabilirsiniz.