Skip to content

lucidphp/phlist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python List-Like Data Structure For php.

Author Source Code Software License

Build Status Code Coverage

Requirements

php >= 7.0master

Installation

$ composer require lucid/phlist

Phlist class

The Phlist class implements a ListInterface and is modelled after pythons list.

<?php

use Lucid\Phlist\Phlist;

$list = new Phlist('foo', 'bar', ...);

ListInterface API

ListInterface ListInterface::push(mixed $value)

<?php
$list = new Phlist('foo');
$list->push('bar'); 
$list->toArray(); // => ['foo', 'bar']

ListInterface ListInterface::insert(int $index, mixed $value)

<?php
$list = new Phlist(1, 2, 3);
$list->insert(1, 1.5); 
$list->toArray(); // => [1, 1.5, 2]

mixed ListInterface::pop(void)

<?php
$list = new Phlist(1, 2, 3);
$list->pop(); // => 3

ListInterface ListInterface::remove(mixed $value)

<?php
$list = new Phlist(1, 2, 3);
$list->remove(2); 
$list->toArray(); // [1, 3]

ListInterface ListInterface::sort(callable $sort|null)

<?php
$list = new Phlist(1, 4, 3, 2);
$list->sort(); 
$list->toArray(); // [1, 2, 3, 4]

$list = new Phlist(1, 4, 3, 2);
$list->sort(function ($a, $b) {
    return $a > $b ? 1 : -1;
}); 
$list->toArray(); // [1, 2, 3, 4]

ListInterface ListInterface::reverse(void)

<?php
$list = new Phlist(1, 2, 3);
$list->reverse();
$list->toArray(); // =>[3, 2, 1]

ListInterface ListInterface::countValue(mixed $value)

<?php
$list = new Phlist(1, 2, 3, 4, 2, 5);
$list->countValue(5); // => 1
$list->countValue(2); // => 2

ListInterface ListInterface::extend(ListInterface $list)

<?php
$listA = new Phlist('a', 'b');
$listB = new Phlist('c', 'd');
$listA->extend($listB);
$listA->toArray() // => ['a', 'b', 'c', 'd'];

About

List structure modelled after python's list

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages