123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- /**
- *
- *User:Administrator
- *Date:2021/10/3
- */
- namespace app\common\lib;
- class Arr
- {
- /**
- * 数组分页显示
- * @param $array:数组
- * @param $page_number:当前页码
- * @param string $items:每页显示几条
- * @return array
- */
- public function Arr_page($array,$page_number,$items='')
- {
- if ($items) {
- $page_total = ceil(count($array) / $items);//总共有多少页
- $start= ($page_number-1)*$items; //计算偏移量
- $data=array_slice($array, $start, $items);
- }else{
- $page_total=1;
- $data = array_slice($array, 0);//如果不存在每页数量则全部显示
- }
- //todo 分页功能可以更加完善点,在controller里添加参数认证,这里可以再写一次
- return [
- 'page'=>[
- 'total'=>$page_total,//总页数
- 'current'=>$page_number,//当前页码
- 'items'=>$items,
- ],
- 'data'=>$data,
- ];
- }
- /**
- *移除二维数组中不要的字段
- * @param $arr
- * @param ...$args
- * @return mixed
- */
- public function Arr_remove($arr, ...$args)
- {
- foreach ($arr as $k => &$v) {
- foreach ($args as $a => $b) {
- unset($v[$b]);
- }
- }
- return $arr;
- }
- /**
- * 返回数组中指定多列
- * @param $array:需要取出数组列的多维数组
- * @param null $column_keys:要取出的列名,逗号分隔,如不传则返回所有列
- * @param null $index_key:作为返回数组的索引的列
- * @return array
- */
- function Arr_columns($array, $column_keys=null, $index_key=null){
- $result = array();
- $keys =isset($column_keys)? explode(',', $column_keys) : array();
- if($array){
- foreach($array as $k=>$v){
- // 指定返回列
- if($keys){
- $tmp = array();
- foreach($keys as $key){
- $tmp[$key] = $v[$key];
- }
- }else{
- $tmp = $v;
- }
- // 指定索引列
- if(isset($index_key)){
- $result[$v[$index_key]] = $tmp;
- }else{
- $result[] = $tmp;
- }
- }
- }
- return $result;
- }
- /**
- * 数组树状化
- * @param $arr
- * @param $parent_id
- * @return array
- */
- function Arr_tree($arr,$parent_id){
- $tmp_arr=[];
- foreach ($arr as $k=> $v){
- if($v['parent_id']==$parent_id){
- unset($arr[$k]);
- $v['children']=$this->Arr_tree($arr, $v['product_code']);
- $tmp_arr[]=$v;
- }
- }
- return $tmp_arr;
- }
- }
|