/** * @package 二維數組排序 * Sort an two-dimension array by some level two items use array_multisort() function. * sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……) * @param array $ArrayData the array to sort. * @param string $KeyName1 the first item to sort by. * @param string $SortOrder1 the order to sort by("SORT_ASC"|"SORT_DESC") * @param string $SortType1 the sort type("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING") * @return array sorted array. */ function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR") { if(!is_array($ArrayData)) { return $ArrayData; } // Get args number. $ArgCount = func_num_args(); // Get keys to sort by and put them to SortRule array. for($I = 1;$I < $ArgCount;$I ++) { $Arg = func_get_arg($I); if(!eregi("SORT",$Arg)) { $KeyNameList[] = $Arg; $SortRule[] = '$'.$Arg; } else { $SortRule[] = $Arg; } } // Get the values according to the keys and put them to array. foreach($ArrayData AS $Key => $Info) { foreach($KeyNameList AS $KeyName) { ${$KeyName}[$Key] = $Info[$KeyName]; } } // Create the eval string and eval it. $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);'; eval ($EvalString); return $ArrayData; }
//去除二維數組中的重複項
/* $array 數組
*
* */
function remove_duplicate($array){ $result=array();
for($i=0;$i<count($array);$i++){
$source=$array[$i];
if(array_search($source,$array)==$i && $source<>"" ){
$result[]=$source;
}
}
return $result;
}
/*
*二維數組的某一字段求和
*
*
*/
方法一:
array_sum(array_map(create_function('$val', 'return $val["size"];'), $arr));
方法二:
array_sum(array_map(function($val){return $val['size'];}, $arr));
對於windows系統,這兩種方法均可用。
對於Linux系統,只有方法一可用,如果是方法二的話,會報錯:Fatal error: Invalid opcode 153/1/8. in ... ...
此外還有一點要注意,對於Linux系統,代碼中的url是區分大小寫的,如果真實路徑是/ABC/index.PHP,當代碼中的$url="/abc/index.php"的話,在windows中可以正常運行,但是Linux中則會報404錯誤。