定制 carloswph/data-struct 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

carloswph/data-struct

Composer 安装命令:

composer require carloswph/data-struct

包简介

Functions to easily build advanced data structures in PHP.

README 文档

README

This package relies on PHP-DS extension to provide a functional way of dealing with advanced data structures, such as vectors, stacks or sets. As provided by the extension, a number of classes offer an object-oriented way of creating, managing and dealing with those structures, although no functions have been so far provided to create those structures.

Idea is to give the developer a way of creating new structures in the same way he does with array(...), or similarly to C++ or Java approach for those data types.

How it works

This package allows you to create a stack or a vector the same way you do with a common array:

$vector = vector(1, 10, 34, 1, 11, 20);
$stack = stack(2, 4, 78, 2, 1, 445);
$set = set(1, 2, 3, 4, 5);

var_dump($vector);
var_dump($stack);
var_dump($set);

/*

object(Ds\Vector)#3 (6) {
  [0]=>
  int(1)
  [1]=>
  int(10)
  [2]=>
  int(34)
  [3]=>
  int(1)
  [4]=>
  int(11)
  [5]=>
  int(20)
}
object(Ds\Stack)#2 (6) {
  [0]=>
  int(445)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(78)
  [4]=>
  int(4)
  [5]=>
  int(2)
}
object(Ds\Set)#4 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}

*/

Which functions can I use?

All data structures covered by PHP-DS received an equivalent function, which accepts ANY number of elements, just like an array. However, contrary to an array in PHP, these functions only allow the values to be set (later, you can use the objected instantiated by each function to have access to the respective class' methods). So, this includes:

  • stack(...elements)
  • vector(...elements)
  • set(...elements)
  • queue(...elements)
  • deque(...elements)
  • map(...elements)

The only exception happens with the pqueue() functions. This particular data structure entangles each value added to a priority level. So, when using this function, the number of elements must be always even - and from these, all the odds will correspond to the previous value priority.

Example: pqueue(3, 10, 1, 5, 2, 25);

In this case, the values to be added to your PriorityQueue object will be (2, 3, 1) - in this order. That happens because, according to the elements provided, the number "2" has the highest priority, then "3" and finally "1", with the lowest priority of 5.

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-06-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固