marcusorjames / utils

PHP Array Tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MOJ Utility Classes

Introduction

Some lightweight utility classes to plug missing basic functions in php

Arrays

use MOJ\Utils\Arrays;

Rename Array keys

$input = ['foo', 'bar'];
$renamedArray = Arrays::rename(['foo' => 'hello', 'bar' => 'world']);
// returns $renamedArray = ['hello', 'world']

Flatten Array

$input = [[0],[1],[2]];
$flattenedArray = Arrays::flatten($input);
// returns $flattenedArray = [0, 1, 2];

Flatten Array with glue

$input = [
    'book'         => 'Dune',
    'housePlanets' => [
        'Atreides'  => 'Caladan',
        'Harkonnen' => 'Giedi Prime',
    ],
    'houses'       => [
        [
            'name'       => 'Atreides',
            'homePlanet' => 'Caladan',
            'leader'     => 'Duke Leto',
        ],
        [
            'name'       => 'Harkonnen',
            'homePlanet' => 'Geidi Prime',
            'leader'     => 'Baron',
        ]
    ],
    'rating'       => '*****',
];
$flattendArray = Arrays::flatten($input, '.');
// returns $flattenedArray = [
//            'book'                   => 'Dune',
//            'housePlanets.Atreides'  => 'Caladan',
//            'housePlanets.Harkonnen' => 'Giedi Prime',
//            'houses.0.name'          => 'Atreides',
//            'houses.0.homePlanet'    => 'Caladan',
//            'houses.0.leader'        => 'Duke Leto',
//            'houses.1.name'          => 'Harkonnen',
//            'houses.1.homePlanet'    => 'Geidi Prime',
//            'houses.1.leader'        => 'Baron',
//            'rating'                 => '*****',
//        ];

Intersect Array by key recursively

$array1 = [
    'book'         => 'Dune',
    'housePlanets' => [
        'Atreides'  => 'Caladan',
        'Harkonnen' => 'Giedi Prime',
    ],
    'rating'       => '*****',
];

$array2 = [
    'book'         => null,
    'housePlanets' => [
        'Harkonnen' => null,
    ]
];

$intersectedArray = Arrays::intersectKeyRecursive($array1, $array2);

//        $intersectedArray = [
//            'book'         => 'Dune',
//            'housePlanets' => [
//                'Harkonnen' => 'Giedi Prime',
//            ],
//        ];

About

PHP Array Tools

License:MIT License


Languages

Language:PHP 100.0%