Bu çalışma böyle bir şey almaya çalışıyorum:
function posts_formatter (&$posts){
foreach ($posts as $k => $v){
if (is_array($v)){
posts_formatter($v);
}else{
switch (strtolower($k)){
# make email addresses lowercase
case (strpos($k, 'email') !== FALSE):
$posts[$k] = strtolower($v);
break;
# make postcodes uppercase
case (strpos($k, 'postcode') !== FALSE):
$posts[$k] = strtoupper($v);
break;
# capitalize certain things
case (strpos($k, 'line1') !== FALSE):
case (strpos($k, 'line2') !== FALSE):
case (strpos($k, 'line3') !== FALSE):
case (strpos($k, 'forename') !== FALSE):
case (strpos($k, 'surname') !== FALSE):
$posts[$k] = capitalize($v);
break;
}
}
}
}
Bu doğru bir dizi geçmesi ve değerlerini biçimlendirmek ama onları geri alamıyorum olacaktır. Ben işlev bildiriminden &
kaldırılması ve sonunda bir dönüş ekleyerek etrafında oynadım ama bir şey yapmayacağım.
Ayrıca, belki de gitmek için bir yol olabilir, bir RecursiveArrayIterator
kullanarak düşünüyorum. Ancak, SPL Yineleyicilerde bir bölüm ile sağ önümde bir kitabın varlığına rağmen örnekler ben ne çalışıyorum ulaşmak mümkün olma yolunda işe yaramaz. Nasıl bir uygulama hakkında gitmek istiyorsunuz?
Edit:
array (
'user' =>
array (
'title' => 'Mr.',
'forename' => 'lowercase',
'surname' => 'name',
'businessName' => 'some dude',
'telephone' => '07545464646',
'postcode' => 'wa1 6nj',
'line1' => 'blergh road',
'line2' => 'randomLY cApitaLIzed wOrds',
'line3' => '',
),
'email' => 'CAPITALIZED@BLERGH.com',
'address' =>
array (
'postcode' => 'ab1 1ba',
'line1' => 'test road',
'line2' => 'testville',
'line3' => 'testshire',
),
'date' => '2010-09-30'
)