<?php
$test_array = array ( 'frequencyCapping' , 'images' , 'sizes' ) ; 'lineItemId' => '' ,
'name' => '' ,
'adType' => '' ,
'clickUrl' => '' ,
'weight' => '' ,
'width' => '' ,
'height' => '' ,
'landingPageId' => '' ,
'text' => '' ,
'frequencyCapping' => array ( 'interval' => '' ,
'mount' => ''
) ,
'referenceUrl' => '' ,
'binaryContent' => ''
) ,
'externalUrl' => '' ,
'text' => '' ,
'clickUrl' => '' ,
'track' => '' ,
'width' => '' ,
'height' => ''
) ,
)
)
) ;
// Actually I've given above the single array. The actual array depends upon the form values fillied in by user. Now I want to loop over this array recursively and find out the matching keys if the keys are matched then create a new array key as [0]=>Array inside it and append all the remianing contents to it. For it I've written following function but it's not working as it is overwriting all the created array elemets. Actually it's not generating the desired array I wanted.
function update_array( $soap_arr , $test_array ) {
foreach ( $soap_arr as $key => $value ) {
// call recursive first, because we can override changes.
// recursive call
$new_array [ $key ] = update_array( $value , $test_array ) ;
}
// if key found then move value to 0th position
if ( ! isset ( $new_array [ $key ] ) ) { $new_array [ $key ] = array ( ) ; }
$new_array [ $key ] [ ] = $value ;
}
}
return $new_array ;
}
// updation not preserved outside of foreach
$ar = update_array( $soap_arr , $test_array ) ;
PD9waHAKCiR0ZXN0X2FycmF5ID0gYXJyYXkoJ2ZyZXF1ZW5jeUNhcHBpbmcnLCdpbWFnZXMnLCdzaXplcycpOwokc29hcF9hcnIgPSBhcnJheSgKICAgICAgICAnbGluZUl0ZW1JZCcgPT4gJycsCiAgICAgICAgJ2NyZWF0aXZlRGF0YScgPT4gYXJyYXkoCiAgICAgICAgICAgICduYW1lJyA9PiAnJywKICAgICAgICAgICAgJ2FkVHlwZScgPT4gJycsCiAgICAgICAgICAgICdjbGlja1VybCcgPT4gJycsCiAgICAgICAgICAgICd3ZWlnaHQnID0+ICcnLAogICAgICAgICAgICAnd2lkdGgnID0+ICcnLAogICAgICAgICAgICAnaGVpZ2h0JyA9PiAnJywKICAgICAgICAgICAgJ2xhbmRpbmdQYWdlSWQnID0+ICcnLAogICAgICAgICAgICAndGV4dCcgPT4gJycsCiAgICAgICAgICAgICdmcmVxdWVuY3lDYXBwaW5nJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICdpbnRlcnZhbCcgPT4gJycsCiAgICAgICAgICAgICAgICAnbW91bnQnID0+ICcnCiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgJ2ltYWdlcycgPT4gYXJyYXkoCiAgICAgICAgICAgICAgJ2ZpbGUnID0+IGFycmF5KAogICAgICAgICAgICAgICAgICAgICAgJ3JlZmVyZW5jZVVybCcgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAnYmluYXJ5Q29udGVudCcgPT4gJycKICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAnZXh0ZXJuYWxVcmwnID0+ICcnLAogICAgICAgICAgICAgICdzaXplcycgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAndGV4dCcgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAnY2xpY2tVcmwnID0+ICcnLAogICAgICAgICAgICAgICAgICAgICAgJ3RyYWNrJyA9PiAnJywKICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyA9PiAnJwogICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICApCiAgICAgICAgKQogICAgKTsKLy8gQWN0dWFsbHkgSSd2ZSBnaXZlbiBhYm92ZSB0aGUgc2luZ2xlIGFycmF5LiBUaGUgYWN0dWFsIGFycmF5IGRlcGVuZHMgdXBvbiB0aGUgZm9ybSB2YWx1ZXMgZmlsbGllZCBpbiBieSB1c2VyLiBOb3cgSSB3YW50IHRvIGxvb3Agb3ZlciB0aGlzIGFycmF5IHJlY3Vyc2l2ZWx5IGFuZCBmaW5kIG91dCB0aGUgbWF0Y2hpbmcga2V5cyBpZiB0aGUga2V5cyBhcmUgbWF0Y2hlZCB0aGVuIGNyZWF0ZSBhIG5ldyBhcnJheSBrZXkgYXMgWzBdPT5BcnJheSBpbnNpZGUgaXQgYW5kIGFwcGVuZCBhbGwgdGhlIHJlbWlhbmluZyBjb250ZW50cyB0byBpdC4gRm9yIGl0IEkndmUgd3JpdHRlbiBmb2xsb3dpbmcgZnVuY3Rpb24gYnV0IGl0J3Mgbm90IHdvcmtpbmcgYXMgaXQgaXMgb3ZlcndyaXRpbmcgYWxsIHRoZSBjcmVhdGVkIGFycmF5IGVsZW1ldHMuIEFjdHVhbGx5IGl0J3Mgbm90IGdlbmVyYXRpbmcgdGhlIGRlc2lyZWQgYXJyYXkgSSB3YW50ZWQuCgpmdW5jdGlvbiB1cGRhdGVfYXJyYXkoJHNvYXBfYXJyLCAkdGVzdF9hcnJheSkgewogICAgJG5ld19hcnJheSA9IGFycmF5KCk7CgogICAgZm9yZWFjaCAoJHNvYXBfYXJyIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgLy8gY2FsbCByZWN1cnNpdmUgZmlyc3QsIGJlY2F1c2Ugd2UgY2FuIG92ZXJyaWRlIGNoYW5nZXMuCiAgICAgICAgLy8gcmVjdXJzaXZlIGNhbGwgCiAgICAgICAgaWYgKGlzX2FycmF5KCR2YWx1ZSkpIHsKICAgICAgICAgICAgJG5ld19hcnJheVska2V5XSA9IHVwZGF0ZV9hcnJheSgkdmFsdWUsICR0ZXN0X2FycmF5KTsKICAgICAgICB9CiAgICAgICAgLy8gaWYga2V5IGZvdW5kIHRoZW4gbW92ZSB2YWx1ZSB0byAwdGggcG9zaXRpb24KICAgICAgICBpZihpbl9hcnJheSgka2V5LCAkdGVzdF9hcnJheSkpIHsKICAgICAgICAgICAgaWYgKCFpc3NldCgkbmV3X2FycmF5WyRrZXldKSkgewogICAgICAgICAgICAgICAgJG5ld19hcnJheVska2V5XSA9IGFycmF5KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG5ld19hcnJheVska2V5XVtdID0gJHZhbHVlOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJG5ld19hcnJheTsKfQoKCi8vIHVwZGF0aW9uIG5vdCBwcmVzZXJ2ZWQgb3V0c2lkZSBvZiBmb3JlYWNoCiRhciA9IHVwZGF0ZV9hcnJheSgkc29hcF9hcnIsICR0ZXN0X2FycmF5KTsKcHJpbnRfcigkYXIpOwo=