• thinkphp5中vendor的使用?


    1.创建处理数组的类ArrayList.php

    <?php
    
    /**
     * ArrayList实现类
     * @author    liu21st <liu21st@gmail.com>
     */
    class ArrayList implements IteratorAggregate
    {
        /**
         * 集合元素
         * @var array
         * @access protected
         */
        protected $elements = [];
    
        /**
         * 架构函数
         * @access public
         * @param string $elements  初始化数组元素
         */
        public function __construct($elements = [])
        {
            if (!empty($elements)) {
                $this->elements = $elements;
            }
        }
    
        /**
         * 若要获得迭代因子,通过getIterator方法实现
         * @access public
         * @return ArrayObject
         */
        public function getIterator()
        {
            return new ArrayObject($this->elements);
        }
    
        /**
         * 增加元素
         * @access public
         * @param mixed $element  要添加的元素
         * @return boolean
         */
        public function add($element)
        {
            return (array_push($this->elements, $element)) ? true : false;
        }
    
        // 在数组开头插入一个单元
        public function unshift($element)
        {
            return (array_unshift($this->elements, $element)) ? true : false;
        }
    
        // 将数组最后一个单元弹出(出栈)
        public function pop()
        {
            return array_pop($this->elements);
        }
    
        /**
         * 增加元素列表
         * @access public
         * @param ArrayList $list  元素列表
         * @return boolean
         */
        public function addAll($list)
        {
            $before = $this->size();
            foreach ($list as $element) {
                $this->add($element);
            }
            $after = $this->size();
            return ($before < $after);
        }
    
        /**
         * 清除所有元素
         * @access public
         */
        public function clear()
        {
            $this->elements = [];
        }
    
        /**
         * 是否包含某个元素
         * @access public
         * @param mixed $element  查找元素
         * @return string
         */
        public function contains($element)
        {
            return (array_search($element, $this->elements) !== false);
        }
    
        /**
         * 根据索引取得元素
         * @access public
         * @param integer $index 索引
         * @return mixed
         */
        public function get($index)
        {
            return $this->elements[$index];
        }
    
        /**
         * 查找匹配元素,并返回第一个元素所在位置
         * 注意 可能存在0的索引位置 因此要用===False来判断查找失败
         * @access public
         * @param mixed $element  查找元素
         * @return integer
         */
        public function indexOf($element)
        {
            return array_search($element, $this->elements);
        }
    
        /**
         * 判断元素是否为空
         * @access public
         * @return boolean
         */
        public function isEmpty()
        {
            return empty($this->elements);
        }
    
        /**
         * 最后一个匹配的元素位置
         * @access public
         * @param mixed $element  查找元素
         * @return integer
         */
        public function lastIndexOf($element)
        {
            for ($i = (count($this->elements) - 1); $i > 0; $i--) {
                if ($this->get($i) == $element) {
                    return $i;
                }
            }
        }
    
        public function toJson()
        {
            return json_encode($this->elements);
        }
    
        /**
         * 根据索引移除元素
         * 返回被移除的元素
         * @access public
         * @param integer $index 索引
         * @return mixed
         */
        public function remove($index)
        {
            $element = $this->get($index);
            if (!is_null($element)) {
                array_splice($this->elements, $index, 1);
            }
            return $element;
        }
    
        /**
         * 移出一定范围的数组列表
         * @access public
         * @param integer $offset  开始移除位置
         * @param integer $length  移除长度
         */
        public function removeRange($offset, $length)
        {
            array_splice($this->elements, $offset, $length);
        }
    
        /**
         * 移出重复的值
         * @access public
         */
        public function unique()
        {
            $this->elements = array_unique($this->elements);
        }
    
        /**
         * 取出一定范围的数组列表
         * @access public
         * @param integer $offset  开始位置
         * @param integer $length  长度
         */
        public function range($offset, $length = null)
        {
            return array_slice($this->elements, $offset, $length);
        }
    
        /**
         * 设置列表元素
         * 返回修改之前的值
         * @access public
         * @param integer $index 索引
         * @param mixed $element  元素
         * @return mixed
         */
        public function set($index, $element)
        {
            $previous                = $this->get($index);
            $this->elements[$index]  = $element;
            return $previous;
        }
    
        /**
         * 获取列表长度
         * @access public
         * @return integer
         */
        public function size()
        {
            return count($this->elements);
        }
    
        /**
         * 转换成数组
         * @access public
         * @return array
         */
        public function toArray()
        {
            return $this->elements;
        }
    
        // 列表排序
        public function ksort()
        {
            ksort($this->elements);
        }
    
        // 列表排序
        public function asort()
        {
            asort($this->elements);
        }
    
        // 逆向排序
        public function rsort()
        {
            rsort($this->elements);
        }
    
        // 自然排序
        public function natsort()
        {
            natsort($this->elements);
        }
    
    }

    2.将ArrayList.php放到项目根目录下的extend文件夹下的shuzu文件夹下

    3.在测试文件中写入测试代码

    4.浏览器打开测试页面展示

  • 相关阅读:
    Ant Design Pro:Layout 组件——嵌套布局
    React实战之将数据库返回的时间转换为几分钟前、几小时前、几天前的形式。
    React实战之Ant Design—Upload上传_附件上传
    React实战之60s倒计时按钮(发送短信验证按钮)
    map方法到底会不会改变原始数组?
    【React】react开发vscode插件推荐
    【React】React 工程的 VS Code 插件及配置
    【React】react新特性实例详解(memo、lazy、suspense、hooks)
    数组常用slice和splice的区别
    【React】react-beautiful-dnd 实现组件拖拽
  • 原文地址:https://www.cnblogs.com/zhangyouwu/p/8403795.html
Copyright © 2020-2023  润新知