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.