Bu, tüm akşam beni deli ediyor. Temel olarak, değeri dezenfekte ettikten sonra çok boyutlu bir dizide belirli bir değer ayarlamalıyım ve daha sonra (belki de validasyona bağlıdır; eğer doğrulama başarısız olursa, değer boş bir dizeye ayarlanmalıdır) değeri onayladıktan sonra. Diyelim ki bu yazı dizisi var diyelim:Referansa göre çok boyutlu dizide dinamik olarak değer nasıl ayarlanır
$data['should']['be']['int'] = ' yjd';
filter_var($value, FILTER_SANITIZE_NUMBER_INT);
ile değerini Dezenfekte edildikten sonra geri boş bir dize alıyorum. O zaman bir şekilde $data['should']['be']['int']
değerini boş bir dize olarak ayarlamanız gerekir.
Bu değer daha sonra bir doğrulama işlevine iletilir, bu da başarısız olur, boş dizenin tam sayı olmamasına neden olur. Yine, bu onaylanmış değerin $data['should']['be']['int']
boş bir dizeye ayarlanması gerekir. Ben
$keys = array(
0 => 'should',
1 => 'be',
2 => 'int'
);
:
bütün doğrulama şey zaman ben sterilize yoksa bu mevcut gibi bir şey var doğrulamak gerekir bu yüzden, bir dizideki tüm ilgili anahtarları tasarrufu olduğum başladı önce ve daha sonra &$data
dizisine referans vererek yukarıdaki değeri kullanarak bir foreach döngüsünde $data
dizisine erişmeyi denedim, ancak yeni değeri ayarlamak için denedim, ancak ne denediysem denemedim. Yukarıdaki sadece basitleştirilmiş bir örnektir. Her şey bir doğrulama sınıfının bir parçası olduğundan, bu yüzden geçen $data
dizisinin tam derinliğini bilmiyorum.
Herhangi bir işaretçi çok takdir edilecektir! Yardım ettiğin için teşekkür ederim!
Düzeltme: Düşünce Bu gönderiyi düzenleyemiyorum, ancak sadece internet bağlantım oldu. Lütfen aşağıdaki yorumumu dikkate almayın.
protected function set_value(&$data, $value) {
foreach($data as &$val) {
if(is_array($val)) {
$this->set_value($val, $value);
} else {
$val = $value;
}
}
}
Ben bu did döngüye başlamak için:: Neyse, işte ben yinelemeli arama çalıştı yöntemidir
$this->set_value($data[$keys[0]], $value);
http://ouzo.readthedocs.org/en/latest/utils/arrays.html#setnestedvalue sen denedi fazla kod göster bakınız. – mkaatman
Yorum kaldırıldı, lütfen yukarıdaki düzenlemeye bakın. – shabushabu