<?php
$array1 = [
'DIV1' => 'Some element data' ,
'SUPPLEMENTAL' => [
'RPC' => '10.24.122.32' ,
'PORT' => '8080'
] ,
'ASG' => 'some arbitrary data'
] ;
$array2 = [
'DIV2' => 'Some more element data' ,
'ASG' => 'different arbitrary data' ,
'DIV1' => 'Some element data that refers to the other object' ,
'SUPPLEMENTAL' => [
'RPC' => '10.24.123.1'
]
] ;
function recursiveReKeyArrays
( array $array1 , array $array2 ) {
// Loop through the array for recursion
foreach ( $array2 as $key => $value ) {
continue ;
}
$array1 [ $key ] = recursiveReKeyArrays( $array1 [ $key ] , $value ) ;
}
// Find the differences in the keys
$array1 [ $key ] = null ;
}
return $array1 ;
}
$result1 = recursiveReKeyArrays( $array1 , $array2 ) ;
$result2 = recursiveReKeyArrays( $array2 , $array1 ) ;
PD9waHAKCiRhcnJheTEgPSBbCiAgICAnRElWMScgPT4gJ1NvbWUgZWxlbWVudCBkYXRhJywKICAgICdTVVBQTEVNRU5UQUwnID0+IFsKICAgICAgICAnUlBDJyA9PiAnMTAuMjQuMTIyLjMyJywKICAgICAgICAnUE9SVCcgPT4gJzgwODAnCiAgICBdLAogICAgJ0FTRycgPT4gICdzb21lIGFyYml0cmFyeSBkYXRhJwpdOwoKJGFycmF5MiA9IFsKICAgICdESVYyJyA9PiAnU29tZSBtb3JlIGVsZW1lbnQgZGF0YScsCiAgICAnQVNHJyAgPT4gJ2RpZmZlcmVudCBhcmJpdHJhcnkgZGF0YScsCiAgICAnRElWMScgPT4gJ1NvbWUgZWxlbWVudCBkYXRhIHRoYXQgcmVmZXJzIHRvIHRoZSBvdGhlciBvYmplY3QnLAogICAgJ1NVUFBMRU1FTlRBTCcgPT4gWwogICAgICAgICAnUlBDJyA9PiAnMTAuMjQuMTIzLjEnCiAgICBdCl07CgpmdW5jdGlvbiByZWN1cnNpdmVSZUtleUFycmF5cyhhcnJheSAkYXJyYXkxLCBhcnJheSAkYXJyYXkyKQp7CgkvLyBMb29wIHRocm91Z2ggdGhlIGFycmF5IGZvciByZWN1cnNpb24KCWZvcmVhY2ggKCRhcnJheTIgYXMgJGtleSA9PiAkdmFsdWUpIHsKCQlpZiAoIWlzX2FycmF5KCR2YWx1ZSkpIHsKCQkJY29udGludWU7CgkJfQoJCQoJCSRhcnJheTFbJGtleV0gPSByZWN1cnNpdmVSZUtleUFycmF5cygkYXJyYXkxWyRrZXldLCAkdmFsdWUpOwoJfQoJCgkvLyBGaW5kIHRoZSBkaWZmZXJlbmNlcyBpbiB0aGUga2V5cwoJZm9yZWFjaCAoYXJyYXlfZGlmZl9rZXkoJGFycmF5MiwgJGFycmF5MSkgYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkkYXJyYXkxWyRrZXldID0gbnVsbDsKCX0KCQoJcmV0dXJuICRhcnJheTE7Cn0KCiRyZXN1bHQxID0gcmVjdXJzaXZlUmVLZXlBcnJheXMoJGFycmF5MSwgJGFycmF5Mik7CiRyZXN1bHQyID0gcmVjdXJzaXZlUmVLZXlBcnJheXMoJGFycmF5MiwgJGFycmF5MSk7CgpwcmludF9yKCRyZXN1bHQxKTsKcHJpbnRfcigkcmVzdWx0Mik7