note 37244 added to function.array-merge

From: Date: Fri, 07 Nov 2003 14:26:53 +0000
Subject: note 37244 added to function.array-merge
Groups: php.notes 
Request: Send a blank email to php-notes+get-60088@lists.php.net to get a copy of this message
Here is the same what i posted before but a bit better solved with using array_push (${"activ_array".$j}, $activ_array[$i]); we need no copy from the part arrays because the part arrays will start with [0] <?php $activ_array=array( array("apfel_01","germany","xx","red"), array("apfel_07","germany","xx","green"), array("apfel_08","germany","xx","green"), array("apfel_02","germany","xx","red"), array("apfel_03","germany","xx","red"), array("apfel_04","germany","xx","red"), array("apfel_09","germany","xx","red_+_green"), array("apfel_10","germany","xx","red_+_green"), array("apfel_05","germany","xx","green"), array("apfel_06","germany","xx","green") ); function array_sort($array, $key , $target){ for ($i = 0; $i < sizeof($array); $i++){ $array2 = $array; if($target == 'name'){ if(! empty($array2[$i]["nameletter"])){ //echo $myarray[$i]["nameletter"] ; $array2[$i]["name"] = substr($array2[$i][$key],($array2[$i]["nameletter"]-1)); }else{ $array2[$i]["name"] = substr($array2[$i][$key],0); } $sort_values[$i] = $array2[$i]["name"]; }else{ $sort_values[$i] = $array2[$i][$key]; } } asort ($sort_values); reset ($sort_values); while (list ($arr_keys, $arr_values) = each ($sort_values)) { $sorted_arr[] = $array[$arr_keys]; } return $sorted_arr; } $activ_array = array_sort($activ_array,3,'imagetype'); $j=0; // first part array ${"activ_array"."$j"} = array(); for($i=0;$i<sizeof($activ_array);$i++){ if($activ_array[$i][3] !=$activ_array[$i-1][3] && $i >1){ $j++; ${"activ_array".$j} = array(); } array_push (${"activ_array".$j}, $activ_array[$i]); } // part array sorting for($i=0;$i<=$j;$i++){ ${"activ_array".$i} = array_sort(${"activ_array".$i},0,'name'); } $activ_array = array(); for($i=0;$i<=$j;$i++){ $activ_array = array_merge($activ_array,${"activ_array".$i}); } for($i=0;$i<sizeof($activ_array);$i++){ print_r($activ_array[$i]); echo("<br>"); } ?> ---- Manual Page -- http://www.php.net/manual/en/function.array-merge.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+37244 Delete -- http://master.php.net/manage/user-notes.php?action=delete+37244&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+37244&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#60088) next »