Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function strangeArray($array) {
- $original = $array;
- $uniq = array_unique($original);
- $output_array = array();
- $append_array = array();
- $dup_status = false;
- foreach($uniq as $uniq_index => $uv) {
- $origIndex = array_search($uv, $original);
- unset($original[$origIndex]);
- if( ( $dup_status or $uniq_index==0 ) and in_array ($uv, $original) )
- {
- $dup_status = true;
- array_push($output_array,$uv);
- $dupOrigIndex = array_search($uv, $original);
- unset($original[$dupOrigIndex]);
- } else if(in_array( $uv, $original ) ) {
- array_push($output_array,$uv);
- array_push($append_array,$uv);
- $dupOrigIndex = array_search($uv, $original);
- unset($original[$dupOrigIndex]);
- } else if(!$dup_status) {
- array_push($output_array,$uv);
- $dupOrigIndex = array_search($uv, $original);
- if($dupOrigIndex) {
- unset($original[$dupOrigIndex]);
- }
- } else {
- break;
- }
- }
- if($dup_status) {
- foreach($uniq as $uv) {
- array_push($output_array,$uv);
- }
- } else {
- foreach($append_array as $apv) {
- array_push($output_array,$apv);
- }
- }
- return $output_array;
- }
- $o_arr1 = array(2,2,3,3,4,4,5,5,6,7,8,9,10,11,12);
- $arr1 = strangeArray($o_arr1);
- $o_arr2 = array(2,3,4,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12);
- $arr2 = strangeArray($o_arr2);
- echo json_encode($o_arr1)."<br />".json_encode($arr1);
- echo "<hr />";
- echo json_encode($o_arr2)."<br />".json_encode($arr2);
- /* --- print out result
- [2,2,3,3,4,4,5,5,6,7,8,9,10,11,12]
- [2,3,4,5,2,3,4,5,6,7,8,9,10,11,12]
- -----------------------------------
- [2,3,4,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12]
- [2,3,4,5,6,7,8,9,10,11,12,6,7,8,9,10,11,12]
- */
Advertisement
Add Comment
Please, Sign In to add comment