PHP實現(xiàn)的操作數(shù)組類庫定義與用法示例_第1頁
PHP實現(xiàn)的操作數(shù)組類庫定義與用法示例_第2頁
PHP實現(xiàn)的操作數(shù)組類庫定義與用法示例_第3頁
PHP實現(xiàn)的操作數(shù)組類庫定義與用法示例_第4頁
PHP實現(xiàn)的操作數(shù)組類庫定義與用法示例_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第PHP實現(xiàn)的操作數(shù)組類庫定義與用法示例本文實例講述了PHP實現(xiàn)的操作數(shù)組類庫定義與用法。分享給大家供大家參考,具體如下:

類庫(完整類庫):

classArrayHelper{

*從數(shù)組中刪除空白的元素(包括只有空白字符的元素)

*用法:

*@codephp

*$arr=array('','test','');

*ArrayHelper::removeEmpty($arr);

*dump($arr);

*//輸出結果中將只有'test'

*@endcode

*@paramarray$arr要處理的數(shù)組

*@paramboolean$trim是否對數(shù)組元素調用trim函數(shù)

staticfunctionremoveEmpty($arr,$trim=TRUE)

foreach($arras$key=$value)

if(is_array($value))

self::removeEmpty($arr[$key]);

else

$value=trim($value);

if($value=='')

unset($arr[$key]);

elseif($trim)

$arr[$key]=$value;

*從一個二維數(shù)組中返回指定鍵的所有值

*用法:

*@codephp

*$rows=array(

*array('id'=1,'value'='1-1'),

*array('id'=2,'value'='2-1'),

*);

*$values=ArrayHelper::getCols($rows,'value');

*dump($values);

*//輸出結果為

*//array(

*//'1-1',

*//'2-1',

*//)

*@endcode

*@paramarray$arr數(shù)據(jù)源

*@paramstring$col要查詢的鍵

*@returnarray包含指定鍵所有值的數(shù)組

staticfunctiongetCols($arr,$col)

$ret=array();

foreach($arras$row)

if(isset($row[$col])){

$ret[]=$row[$col];

return$ret;

*將一個二維數(shù)組轉換為HashMap,并返回結果

*用法1:

*@codephp

*$rows=array(

*array('id'=1,'value'='1-1'),

*array('id'=2,'value'='2-1'),

*);

*$hashmap=ArrayHelper::toHashmap($rows,'id','value');

*dump($hashmap);

*//輸出結果為

*//array(

*//1='1-1',

*//2='2-1',

*//)

*@endcode

*如果省略$valueField參數(shù),則轉換結果每一項為包含該項所有數(shù)據(jù)的數(shù)組。

*用法2:

*@codephp

*$rows=array(

*array('id'=1,'value'='1-1'),

*array('id'=2,'value'='2-1'),

*);

*$hashmap=ArrayHelper::toHashmap($rows,'id');

*dump($hashmap);

*//輸出結果為

*//array(

*//1=array('id'=1,'value'='1-1'),

*//2=array('id'=2,'value'='2-1'),

*//)

*@endcode

*@paramarray$arr數(shù)據(jù)源

*@paramstring$keyField按照什么鍵的值進行轉換

*@paramstring$valueField對應的鍵值

*@returnarray轉換后的HashMap樣式數(shù)組

staticfunctiontoHashmap($arr,$keyField,$valueField=NULL)

$ret=array();

if($valueField)

foreach($arras$row)

$ret[$row[$keyField]]=$row[$valueField];

else

foreach($arras$row)

$ret[$row[$keyField]]=$row;

return$ret;

*將一個二維數(shù)組按照指定字段的值分組

*用法:

*@endcode

*@paramarray$arr數(shù)據(jù)源

*@paramstring$keyField作為分組依據(jù)的鍵名

*@returnarray分組后的結果

staticfunctiongroupBy($arr,$keyField)

$ret=array();

foreach($arras$row)

$key=$row[$keyField];

$ret[$key][]=$row;

return$ret;

*將一個平面的二維數(shù)組按照指定的字段轉換為樹狀結構

*如果要獲得任意節(jié)點為根的子樹,可以使用$refs參數(shù):

*@codephp

*$refs=null;

*$tree=ArrayHelper::tree($rows,'id','parent','nodes',$refs);

*//輸出id為3的節(jié)點及其所有子節(jié)點

*$id=3;

*dump($refs[$id]);

*@endcode

*@paramarray$arr數(shù)據(jù)源

*@paramstring$keyNodeId節(jié)點ID字段名

*@paramstring$keyParentId節(jié)點父ID字段名

*@paramstring$keyChildrens保存子節(jié)點的字段名

*@paramboolean$refs是否在返回結果中包含節(jié)點引用

*returnarray樹形結構的數(shù)組

staticfunctiontoTree($arr,$keyNodeId,$keyParentId='parent_id',$keyChildrens='childrens',$refs=NULL)

$refs=array();

foreach($arras$offset=$row)

$arr[$offset][$keyChildrens]=array();

$refs[$row[$keyNodeId]]=$arr[$offset];

$tree=array();

foreach($arras$offset=$row)

$parentId=$row[$keyParentId];

if($parentId)

if(!isset($refs[$parentId]))

$tree[]=$arr[$offset];

continue;

$parent=$refs[$parentId];

$parent[$keyChildrens][]=$arr[$offset];

else

$tree[]=$arr[$offset];

return$tree;

*將樹形數(shù)組展開為平面的數(shù)組

*這個方法是tree()方法的逆向操作。

*@paramarray$tree樹形數(shù)組

*@paramstring$keyChildrens包含子節(jié)點的鍵名

*@returnarray展開后的數(shù)組

staticfunctiontreeToArray($tree,$keyChildrens='childrens')

$ret=array();

if(isset($tree[$keyChildrens])is_array($tree[$keyChildrens]))

foreach($tree[$keyChildrens]as$child)

$ret=array_merge($ret,self::treeToArray($child,$keyChildrens));

unset($node[$keyChildrens]);

$ret[]=$tree;

else

$ret[]=$tree;

return$ret;

*根據(jù)指定的鍵對數(shù)組排序

*@endcode

*@paramarray$array要排序的數(shù)組

*@paramstring$keyname排序的鍵

*@paramint$dir排序方向

*@returnarray排序后的數(shù)組

staticfunctionsortByCol($array,$keyname,$dir=SORT_ASC)

returnself::sortByMultiCols($array,array($keyname=$dir));

*將一個二維數(shù)組按照多個列進行排序,類似SQL語句中的ORDERBY

*用法:

*@codephp

*$rows=ArrayHelper::sortByMultiCols($rows,array(

*'parent'=SORT_ASC,

*'name'=SORT_DESC,

*));

*@endcode

*@paramarray$rowset要排序的數(shù)組

*@paramarray$args排序的鍵

*@returnarray排序后的數(shù)組

staticfunctionsortByMultiCols($rowset,$args)

$sortArray=array();

$sortRule='';

foreach($argsas$sortField=$sortDir)

foreach($rowsetas$offset=$row)

$sortArr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論