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:
$dataanahtar / değer çifti bir$blueprintanahtar / değer çiftini eşleşirse,$data'sk / v geçerlidir$dataanahtar / değer çifti bir$blueprinttuşuna ve iç içe diziden bir değer eşleşirse,$data'sk / v geçerlidir$datadizisi$blueprintbulunan bir anahtar / değer çifti çıkarırsa o {yer değilse,$data'sk / v hala geçerli olabilir [(3)]} dizisi$datadizisi$blueprint,$data'sk / v bulunmayan bir anahtar / değer çifti malzemeleri ise geçersiz- Bir anahtar / değer çifti
$datatuşu tanımlı anahtarı olmadan$blueprintdeğeri eşleşirse,$data'sk / v hala geçerli olabilir.$blueprinttanı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,$datask$blueprintk / 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.