我是靠谱客的博主 彪壮流沙,最近开发中收集的这篇文章主要介绍php arraylist,thinkphp5中extend的使用?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

/**

* ArrayList实现类

* @author liu21st

*/

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文件夹下

8756780a2e624f134e95659e8d90e589.png

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

abd1f980b87df174f51e90d683beb02e.png

用到的代码

$list = ['aaa','bbb','ccc','ddd'];

$arraylist = new ArrayList($list);

$arraylist->add('cccc');

$arraylist->unique();

echo $arraylist->toJson();

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

d363d531347307e1fdbe530af2408cc9.png

最后

以上就是彪壮流沙为你收集整理的php arraylist,thinkphp5中extend的使用?的全部内容,希望文章能够帮你解决php arraylist,thinkphp5中extend的使用?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部