Sunday, 25 August 2013

Multidimensional array search and replace does not works

Multidimensional array search and replace does not works

I have a function which recognize my $schema,
According my $schema['replace'] it replaces values.
My function fails. Doesnot works as expected.
Any one can help me? to complete my function
$schema = array(
array(
'tag' => 'div',
'class' => 'lines',
'repeat' => array(
'tag' => 'div',
array(
'tag' => 'span',
'style' => 'margin:10px; padding:10px',
'key' => 'title',
),
'key' => 'subject',
)
)
);
$repeat = array('Country Name' => 'Usa', 'City Name' => 'Newyork');
function repeat($schema, $repeat){
foreach($schema as $k => $v){
if($k == 'repeat'){
foreach($repeat as $rk => $rv){
$repeat[] =
array_replace($schema,array_fill_keys(array_keys($schema,
'title'),$rk));
$repeat[] =
array_replace($schema,array_fill_keys(array_keys($schema,
'subject'),$rv));
}
}
}
unset($schema[0]['repeat']);
$schema['repeat'] = $repeat;
return $schema;
}
print_r(repeat($schema, $repeat));
EXPECTED OUTPUT
Array
(
[0] => Array
(
[tag] => div
[class] => lines
[0] => Array
(
[tag] => div
[0] => Array
(
[tag] => span
[style] => margin:10px; padding:10px
[key] => Country Name
)
[key] => Usa
)
[1] => Array
(
[tag] => div
[0] => Array
(
[tag] => span
[style] => margin:10px; padding:10px
[key] => City Name
)
[key] => Newyork
)
)
)
Whats wrong with my function?

No comments:

Post a Comment