PHP: ilişkisel dizi referans nesne kaldırma

0 Cevap php

Ben çok boyutlu, ilişkisel dizi endeksine göre bir nesneyi arıyor tekrarlamalı bir fonksiyon var.

$settings = array(
'title' => new XCPreferenceShortText('title'),
'html' => new XCPreferenceLongText('html'),
'_blog' => array(
    '_blog' => new XCPreferenceHeading('blog'),
    'acceptcomments' => new XCPreferenceBoolean('acceptcomments'),
    'per_page' => new XCPreferenceNumberSet('per_page')
),
'_publishing' => array(
    '_publishing' => new XCPreferenceHeading('publishing'),
    'published' => new XCPreferenceBoolean('published'),
    'publishon' => new XCPreferenceDate('publishon'),
)
);

Kod dizi erişir ve is_array($value) true döndürür zaman, o şeyi recurses.

function &find($idx, $pref_array = false) {

    if ($pref_array === false)
        $pref_array = &$this->preferences;

    foreach ($pref_array as $key => $data) {
        if (is_array($data)) {
            $res = $this->find($idx, $data);
            if ($res !== false)
                return $res;
        }
        else if ($key == $idx)
            return $pref_array[$idx];
    }

    return false;
}

Bu fonksiyon bulur (ve sonuç bir başvuru döndüren) belirli bir anahtar için ilişkili bir nesne - ama ben bir değişken dönüş değeri / başvurusunu saklamak ve null o VAR ayarladığınızda, bu gerçek öğesinin üzerinde hiçbir etkisi yoktur " orijinal "dizisi.

0 Cevap