PHP實現的運算元組類庫定義與用法示例

2022-09-26 05:24:11 字數 4355 閱讀 3688

類庫(完整類庫):

<?php class arrayhelper

else

elseif ($trim)}}

} /**

* 從乙個二維陣列中返回指定鍵的所有值

** 用法:

* @code php

* $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

** @param array $arr 資料來源

* @param string $col 程式設計客棧要查詢的鍵

** @return array 包含指定鍵所有值的陣列

*/static function getcols($arr, $col)

}return $ret;

} /**

* 將乙個二維陣列轉換為 hashmap,並返回結果

** 用法1:

* @code php

* $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 引數,則轉換結果每一項為包含該項所有資料的陣列。

** 用法2:

* @code php

* $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

** @param array $arr 資料來源

* @param string $keyfield 按照什麼鍵的值進行轉換

* @param string $valuefield 對應的鍵值

** @return array 轉換後的 hashmap程式設計客棧 樣式陣列

*/static function tohashmap($arr, $keyfield, $valuefield = null)

}else

}return $ret;

} /**

* 將乙個二維陣列按照指定欄位的值分組

** 用法:

* @endcode

** @param array $arr 資料來源

* @param string $keyfield 作為分組依據的鍵名

** @return array 分組後的結果

*/static function groupby($arr, $keyfield)

return $ret;

} /**

* 將乙個平面的二維陣列按照指定的字段轉換為樹狀結構**

* 如果要獲得任意節點為根的子樹,可以使用 $refs 引數:

* @code php

* $refs = null;

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

** // 輸出 id 為 3 的節點及其所有子節點

* $id = 3;

* dump($refs[$id]);

* @endcode

** @param array $arr 資料來源

* @param string $keynodeid 節點id欄位名

* @param string $keyparentid 節點父id欄位名

* @param string $keychildrens 儲存子節點的欄位名

* @param boolean $refs 是否在返回結果中包含節點引用

** return array 樹形結構的陣列

*/static function totree($arr, $keynodeid, $keyparentid = 'parent_id', $keychildrens = 'childrens', & $refs = null)

$tree = array();

foreach ($arr as $offset => $row)

$parent =& $refs[$parentid];

$parent[$keychildrens] =& $arr[$offset];

}else

}return $tree;

} /**

* 將樹形陣列展開為平面的陣列

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

** @param array $tree 樹形陣列

* @param string $keychildrens 包含子節點的鍵名

** @return array 展開後的陣列

*/static function treetoarray($tree, $keychildrens = 'childrens')

unset($node[$keychildrens]);

$ret = $tree;

}else

return $ret;

} /**

* 根據指定的鍵對陣列排序

** @endcode

** @param array $array 要排序的陣列

* @param string $keyname 排序的鍵

* @param int $dir 排序方向

** @return array 排序後的陣列

*/static function sortbycol($array, $keyname, $dir = sort_asc)

/*** 將乙個二維陣列按照多個列進行排序,類似 sql 語句中的 order by

** 用法:

* @code php

* $rows = arrayhelper::sortbymulticols($rows, array(

* 'parent' => sort_as

* 'name' => sort_desc,

* ));

* @endcode

** @param array $rowset 要排序的陣列

* @param array $args 排序的鍵

** @return array 排序後的陣列

*/static function sortbymulticols($rowset, $args)

$sortrule .= '$sortarray[\'\' . $sortfield .\'\'], ' . $sortdir . ', ';

}if (empty($sortarray) || empty($sortrule))

eval('array_multisort(' . $sortrule . '$rowset);');

return $rowset;

}}?>

用法示例:

從陣列中刪除空白的元素(包括只有空白字元的元素)

用法:$arr = array('', 'test', ' ');

arrayhelper::removeempty($arr);

var_dump($arr);

輸出結果中將只有 'test'

array(1)

php 定義物件,php的類與物件怎麼定義

在自己學習php的過程中,從零基礎開始 從第一本書的看不懂,到第二本書的有印象了,再到第三本書的操作簡單語句 記不清到底看過多少本了。可 是在應用時,每次到了一些關鍵知識點和核心技術,對其定義和用法會有模糊的感覺,因此特意把覺得比較重要的知識點寫成網路筆記,這樣便於經常翻來溫習。面向過程定義 面向過...

oc中類的定義與php中類定義的區別

之前做過 php的開發,現在學 oc語言,感覺區別還是不小的 首先說說類 php中定義的類如下寫法 class person 建立有乙個類的物件 new person person 這裡可以直接用 person.age abc oc中定義的類還是比較麻煩的 定義乙個類是繼承了oc中foundatio...

php類的例項化物件,php類的定義與例項化方法

php類的定義 類是對某個物件的定義。它包含有關物件動作方式的資訊,包括它的名稱 方法 屬性和事件。實際上它本身並不是物件,因為它不存在於記憶體中。當引用類的 執行時,類的乙個新的例項,即物件,就在記憶體中建立了。雖然只有乙個類,但能從這個類在記憶體中建立多個相同型別的物件。類是通過class關鍵字...