/**
* 動態多組陣列資料合併以及分類
* 1.可設定資料中任意陣列為 Key
* 2.如 Key 陣列內有重複的值,會以三維陣列的方式丟出結果,
* 達到資料分類的情況
* 3.因為資料多寡關係會有禿然輸出格式異變的情況,
* 所以加入了一個強制丟出三維陣列結果的參數
*
* 資料型態為一個二維陣列如
* $array = array(
* array('Bill','Lisa','Tre'),
* array(21,22,23),
* array('Male','Female','Male'), <- 這就是上述第二點的狀況
* array('Customer Service Rep','Intranet Site Admin','Mailroom Geek'),
* );
*
* @param 陣列型態資料 $arr
* @param 設定為 Key 的陣列 $df
* @param 強制輸出為三維陣列 可為 0 & null 以外值啟用 $coerce
* @return Array
*/
function array_data_classify($arr=array(),$df='',$coerce=''){
if(!$df){$df=0;}
$chk = (count($arr[$df]) == count(array_unique($arr[$df])) &&
$coerce == '')? 0 : 1;
switch ($chk) {
case 0:
foreach ($arr as $key=>$data){
foreach ($data as $key1=>$data1){
if($key != $df){
$rs[$arr[$df][$key1]][] = $data1;
}
}
}
break;
case 1:
foreach ($arr as $key=>$data){
foreach ($data as $key1=>$data1){
if($key != $df){
$rs_t[$arr[$df][$key1]][$key1][] = $data1;
}
}
}
foreach ($rs_t as $key=>$data){
foreach ($data as $data1){
$rs[$key][] = $data1;
}
}
break;
}
return $rs;
}
PHP_動態二維陣列


訂閱:
張貼留言 (Atom)
0 意見:
張貼留言