PHP Classes

File: src/eMacros/Package/ArrayPackage.php

Recommend this page to a friend!
  Classes of Emmanuel Antico   eMacros   src/eMacros/Package/ArrayPackage.php   Download  
File: src/eMacros/Package/ArrayPackage.php
Role: Class source
Content type: text/plain
Description: Class source
Class: eMacros
PHP LISP language interpreter
Author: By
Last change:
Date: 10 years ago
Size: 3,128 bytes
 

Contents

Class file image Download
<?php
namespace eMacros\Package;

use
eMacros\Runtime\PHPFunction;
use
eMacros\Runtime\Collection\Car;
use
eMacros\Runtime\Collection\Cdr;
use
eMacros\Runtime\Collection\ArrayPop;
use
eMacros\Runtime\Collection\ArrayMap;
use
eMacros\Runtime\Collection\ArrayWalk;
use
eMacros\Runtime\Collection\ArrayPush;
use
eMacros\Runtime\Collection\ArrayShift;
use
eMacros\Runtime\Collection\ArrayUnshift;
use
eMacros\Runtime\Collection\ArrayShuffle;
use
eMacros\Runtime\Collection\ArraySort;

class
ArrayPackage extends Package {
    public function
__construct() {
       
parent::__construct('Array');
       
       
//array functions
       
$this['in'] = new PHPFunction('in_array');
       
$this['count'] = new PHPFunction('count');
       
$this['range'] = new PHPFunction('range');
       
$this['chunk'] = new PHPFunction('array_chunk');
       
$this['combine'] = new PHPFunction('array_combine');
       
$this['count-values'] = new PHPFunction('array_count_values');
       
$this['diff'] = new PHPFunction('array_diff');
       
$this['fill'] = new PHPFunction('array_fill');
       
$this['filter'] = new PHPFunction('array_filter');
       
$this['flip'] = new PHPFunction('array_flip');
       
$this['intersect'] = new PHPFunction('array_intersect');
       
$this['keys'] = new PHPFunction('array_keys');
       
$this['merge'] = new PHPFunction('array_merge');
       
$this['search'] = new PHPFunction('array_search');
       
$this['slice'] = new PHPFunction('array_slice');
       
$this['pad'] = new PHPFunction('array_pad');
       
$this['rand'] = new PHPFunction('array_rand');
       
$this['product'] = new PHPFunction('array_product');
       
$this['sum'] = new PHPFunction('array_sum');
       
$this['unique'] = new PHPFunction('array_unique');
       
$this['values'] = new PHPFunction('array_values');
       
$this['reduce'] = new PHPFunction('array_reduce');
       
$this['replace'] = new PHPFunction('array_replace');
       
$this['reverse'] = new PHPFunction('array_reverse');
       
        if (
function_exists('array_column')) {
           
$this['column'] = new PHPFunction('array_column');
        }
       
       
//macros
       
$this['car'] = new Car();
       
$this['cdr'] = new Cdr();
       
$this['pop'] = new ArrayPop();
       
$this['map'] = new ArrayMap();
       
$this['walk'] = new ArrayWalk();
       
$this['push'] = new ArrayPush();
       
$this['shift'] = new ArrayShift();
       
$this['unshift'] = new ArrayUnshift();
       
$this['shuffle'] = new ArrayShuffle();
       
       
//sort
       
$this['sort'] = new ArraySort('sort');
       
$this['rsort'] = new ArraySort('rsort');
       
//preserve association sort
       
$this['asort'] = new ArraySort('asort');
       
$this['arsort'] = new ArraySort('arsort');
       
//key sort
       
$this['ksort'] = new ArraySort('ksort');
       
$this['krsort'] = new ArraySort('krsort');
       
//callable sort
       
$this['usort'] = new ArraySort('usort');
       
$this['uasort'] = new ArraySort('uasort');
       
$this['uksort'] = new ArraySort('uksort');
       
       
//count constants
       
$this['COUNT_NORMAL'] = COUNT_NORMAL;
       
$this['COUNT_RECURSIVE'] = COUNT_RECURSIVE;
       
       
//sort constants
       
$this['SORT_REGULAR'] = SORT_REGULAR;
       
$this['SORT_NUMERIC'] = SORT_NUMERIC;
       
$this['SORT_STRING'] = SORT_STRING;
       
$this['SORT_LOCALE_STRING'] = SORT_LOCALE_STRING;
       
$this['SORT_NATURAL'] = SORT_NATURAL;
       
$this['SORT_FLAG_CASE'] = SORT_FLAG_CASE;
    }
}
?>