Tamam, yani ayı ile beni oldukça özelleştirilmiş bir sorum var.
Ben temelde farklı olasılıkları bir sürü ile karşılaştırmak istediğiniz veri iki takım var.
$data = array(
'object'=>'ball', // Should check VALID (Rule 2)
'color'=>'white', // VALID (Rule 2)
'heavy'=>'no', // VALID (Rule 1)
'name'=>'wilson', // VALID (Rule 5)
'funny'=>'no' // INVALID (Rule 4)
);
$data_2 = array(
'object'=>'box', // VALID (Rule 2)
'color'=> 'blue', // VALID (Rule 2)
'texture'=>'hard', // VALID (Rule 1)
'heavy'=>'yes', // INVALID (Rule 4)
'stupid'=>'no' // INVALID (Rule 4)
// Name is INVALID because it is missing (Rule 3)
);
$required = array(
'color'=>array('white','blue'),
'heavy'=> 'no',
'name'
);
$errors = array(
'color'=>array('required'=>'Color is Required','invalid'=>'Color invalid')
'object'=>array('invalid'=>'Object invalid'),
'texture'=>array('invalid'=>'Texture invalid'),
'heavy'=>array('required'=>'Heavy is Required','invalid'=>'Heavy invalid'),
'name'=>array('required'=>'Name is Required','max_char'=>'Name exceeds char limit',
'invalid'=>'Invalid item provided',
);
$blueprint = array(
'object'=>array('box','ball'),
'color'=>array('blue','white'),
'texture'=>'hard',
'heavy'=>'no',
'name'
);
Ben ne yapmak istiyorum $data
$blueprint
ile ve aşağıdakilerden emin olun çalıştırılır:
$data
anahtar / değer çifti bir$blueprint
anahtar / değer çiftini eşleşirse,$data
'sk / v geçerlidir$data
anahtar / değer çifti bir$blueprint
tuşuna ve iç içe diziden bir değer eşleşirse,$data
'sk / v geçerlidir$data
dizisi$blueprint
bulunan bir anahtar / değer çifti çıkarırsa o {yer değilse,$data
'sk / v hala geçerli olabilir [(3)]} dizisi$data
dizisi$blueprint
,$data
'sk / v bulunmayan bir anahtar / değer çifti malzemeleri ise geçersiz- Bir anahtar / değer çifti
$data
tuşu tanımlı anahtarı olmadan$blueprint
değeri eşleşirse,$data
'sk / v hala geçerli olabilir.$blueprint
tanımlanmış bir anahtar ve değer varsa Ancak,$data
'sk / h geçerli olacak kural 1 gereksinimleri karşılaması gerekir. - Ben bir
$data
'sk / v Bu karakter sınırını aşarsa,$data
sk$blueprint
k / v çeşitli bir karakter limiti koymak istiyorum / v geçerli değil
Bir $data
'sk / v geçersiz ise, o zaman her nasılsa bu özel k bir hata ilişkilendirmek istiyorum / v o Belki de hata (aştı karakter sınırı, genel hata vb) neden geçersiz olduğunu açıklayan Üçüncü bir dizi tanımlanabilir olacaktır?
Bu o işlevin kapsamı dışında olup olmadığından emin değil array_intersect_assoc
içine baktı ama ettik. Ayrıca, orada $blueprint
değerler iyi bir miktar olabilir, bu yüzden ben mümkün olduğunca çok yönlü bir şey gerekir.
Ben çok karıştı sormak için çekinmeyin, bu yazarken ben bu doğru olduğunu düşünüyorum, benim beyin nevi eridi. Ben daha kapalı sadece tek tek her bir k / v doğrulayarak muyum?
Hadi orada brainiac kim olduğunu görelim.