PHP DS Functional: Convert values stored in PHP data structures

Recommend this page to a friend!
  Info   View files Documentation   View files View files (4)   DownloadInstall with Composer Download .zip   Reputation   Support forum (1)   Blog (1)    
Last Updated Ratings Unique User Downloads Download Rankings
2021-06-04 (3 months ago) RSS 2.0 feedNot enough user ratingsTotal: 43 All time: 10,153 This week: 217Up
Version License PHP version Categories
data-struct 1.0.0GNU General Publi...7Data types, PHP 7
Description Author

This package can convert values stored in PHP data structures.

It provides a class that can convert values stored in data structures supported by the PHP DS extension.

The package also provides functions to initialize data structures from values passed as parameters.

Currently it supports PHP data structures like vector, set, stack, queue, map, deque and pqueue.

Innovation Award
PHP Programming Innovation award winner
June 2021
Winner
The PHP DS extension provides a more efficient way to manipulate common data structures like vector, set, stack, queue, map, deque, and pqueue.

This package provides a simple way to convert values to be used by the functions of the PHP DS extension.

Manuel Lemos
Picture of Carlos Artur Curvelo da Matos
  Performance   Level  
Name: Carlos Artur Curvelo da ... is available for providing paid consulting. Contact Carlos Artur Curvelo da ... .
Classes: 17 packages by
Country: Portugal Portugal
Age: 43
All time rank: 323441 in Portugal Portugal
Week rank: 201 Up3 in Portugal Portugal Up
Innovation award
Innovation award
Nominee: 11x

Winner: 2x

Details

Functional Data Structures

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.

  Files folder image Files  
File Role Description
Files folder imagesrc (2 files)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
  Accessible without login Plain text file functions.php Aux. Auxiliary script
  Plain text file Tools.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:43
This week:0
All time:10,153
This week:217Up
User Comments (1)
Thats a very goood class .
2 months ago (Josť Filipe Lopes Santos)
70%StarStarStarStar
 
For more information send a message to info at phpclasses dot org.