note 37244 added to function.array-merge
| From: | KOmaSHOOTER at gmx dot de | 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