常用php数组处理函数封装的类,类似ArrayHelper

<?php
class ArrayToolkit
{
	//筛选数组,返回关键词搜索的结果 
    public static function search($list,$sk=''){
      $result=[];
      if(empty($sk)){
        return $list;
      }
      foreach ($list as $key => $item) {
        $serialize=json_encode($item, JSON_UNESCAPED_UNICODE);
        if(strpos($serialize,$sk)>0){
            $result[$key]=$item;
        }
      }
      return $result;
    }
    //数组排序。返回数组中按照某个字段排序后的结果
    public static function my_array_multisort($data,$sort_order_field,$sort_order=SORT_DESC,$sort_type=SORT_STRING){
	if(empty($data)){
		return $data;
	}
      foreach($data as $val){
      $key_arrays[]=$val[$sort_order_field];
      }
      array_multisort($key_arrays,$sort_order,$sort_type,$data);
      return $data;
    }
    public static function get(array $array, $key, $default)
    {
        if (isset($array[$key])) {
            return $array[$key];
        } else {
            return $default;
        }
    }
    //返回数组中的某列字段,无该字段则返回空数组
    public static function column(array $array, $columnName)
    {
        if (function_exists('array_column')) {
            $column = array_column($array, $columnName);


            return $column;
        }


        if (empty($array)) {
            return array();
        }


        $column = array();


        foreach ($array as $item) {
            if (isset($item[$columnName])) {
                $column[] = $item[$columnName];
            }
        }


        return $column;
    }
    //在数组去掉指定键名的元素
    public static function parts(array $array, array $keys)
    {
        foreach (array_keys($array) as $key) {
            if (!in_array($key, $keys)) {
                unset($array[$key]);
            }
        }


        return $array;
    }
    //
    public static function requireds(array $array, array $keys, $strictMode = false)
    {
        foreach ($keys as $key) {
            if (!array_key_exists($key, $array)) {
                return false;
            }
            if ($strictMode && (is_null($array[$key]) || $array[$key] === "" || $array[$key] === 0)) {
                return false;
            }
        }


        return true;
    }
    //对比两个数组前后发生了变化 
    public static function changes(array $before, array $after)
    {
        $changes = array('before' => array(), 'after' => array());


        foreach ($after as $key => $value) {
            if (!isset($before[$key])) {
                continue;
            }


            if ($value != $before[$key]) {
                $changes['before'][$key] = $before[$key];
                $changes['after'][$key]  = $value;
            }
        }


        return $changes;
    }
	//将数组中变为array(['元素的某字段']=>'该元素')的数组
    public static function group(array $array, $key)
    {
        $grouped = array();


        foreach ($array as $item) {
            if (empty($grouped[$item[$key]])) {
                $grouped[$item[$key]] = array();
            }


            $grouped[$item[$key]][] = $item;
        }


        return $grouped;
    }
    //
    public static function index(array $array, $name)
    {
        $indexedArray = array();


        if (empty($array)) {
            return $indexedArray;
        }


        foreach ($array as $item) {
            if (isset($item[$name])) {
                $indexedArray[$item[$name]] = $item;
                continue;
            }
        }


        return $indexedArray;
    }
    //为数组重新赋键名
    public static function rename(array $array, array $map)
    {
        $keys = array_keys($map);


        foreach ($array as $key => $value) {
            if (in_array($key, $keys)) {
                $array[$map[$key]] = $value;
                unset($array[$key]);
            }
        }


        return $array;
    }
    //
    public static function filter(array $array, array $specialValues)
    {
        $filtered = array();


        foreach ($specialValues as $key => $value) {
            if (!array_key_exists($key, $array)) {
                continue;
            }


            if (is_array($value)) {
                $filtered[$key] = (array) $array[$key];
            } elseif (is_int($value)) {
                $filtered[$key] = (int) $array[$key];
            } elseif (is_float($value)) {
                $filtered[$key] = (float) $array[$key];
            } elseif (is_bool($value)) {
                $filtered[$key] = (bool) $array[$key];
            } else {
                $filtered[$key] = (string) $array[$key];
            }


            if (empty($filtered[$key])) {
                $filtered[$key] = $value;
            }
        }


        return $filtered;
    }


    public static function trim($array)
    {
        if (!is_array($array)) {
            return $array;
        }


        foreach ($array as $key => $value) {
            if (is_array($value)) {
                $array[$key] = static::trim($value);
            } elseif (is_string($value)) {
                $array[$key] = trim($value);
            }
        }


        return $array;
    }


    public static function every($array, $callback = null)
    {
        foreach ($array as $value) {
            if ((is_null($callback) && !$value) || (is_callable($callback) && !$callback($value))) {
                return false;
            }
        }
        return true;
    }


    public static function some($array, $callback = null)
    {
        foreach ($array as $value) {
            if ((is_null($callback) && $value) || (is_callable($callback) && $callback($value))) {
                return true;
            }
        }
        return false;
    }
}




//调用
$a=new  ArrayToolkit();
$before=array('张三','wrbxzhrzddjyhhdehjzysdl','23');
$after=array('lisi','里斯','20');
$re=$a::rename($before,$after); var_dump($re);die; 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值