force/arr

Arrays Component contains methods that can be useful when working with arrays.

v3.0.1 2020-07-24 14:54 UTC

This package is not auto-updated.

Last update: 2024-12-19 07:28:52 UTC


README

Version License Total downloads Quality Score


Installation

With Composer:

composer require flextype-components/arrays

Usage

use Flextype\Component\Arrays;

Methods

Method: Arrays::set()

Set an array item to a given value using "dot" notation. If no key is given to the method, the entire array will be replaced.

Arrays::set($array, 'movies.the-thin-red-line.title', 'The Thin Red Line');

Method: Arrays::get()

Returns value from array using "dot notation". If the key does not exist in the array, the default value will be returned instead.

Arrays::get($array, 'movies.the-thin-red-line.title')

Method: Arrays::delete()

Deletes an array value using "dot notation".

Arrays::delete($array, 'movies.the-thin-red-line');

Method: Arrays::has()

Checks if the given dot-notated key exists in the array.

if (Arrays::has($array, 'movies.the-thin-red-line')) {
    // Do something...
}

Method: Arrays::dot()

Flatten a multi-dimensional associative array with dots.

$array = [
            'movies' => [
                'the_thin_red_line' => [
                    'title' => 'The Thin Red Line',
                    'directed_by' => 'Terrence Malick',
                    'produced_by' => 'Robert Michael, Geisler Grant Hill, John Roberdeau',
                    'decription' => 'Adaptation of James Jones autobiographical 1962 novel, focusing on the conflict at Guadalcanal during the second World War.',
                ],
            ],
         ];

$newArray = Arrays::dot($array);

Method: Arrays::undot()

Expands a dot notation array into a full multi-dimensional array.

$array = [
            'movies.the_thin_red_line.title' => 'The Thin Red Line',
            'movies.the_thin_red_line.directed_by' => 'Terrence Malick',
            'movies.the_thin_red_line.produced_by' => 'Robert Michael, Geisler Grant Hill, John Roberdeau',
            'movies.the_thin_red_line.decription' => 'Adaptation of James Jones autobiographical 1962 novel, focusing on the conflict at Guadalcanal during the second World War.',
         ];

$newArray = Arrays::undot($array);

License

The MIT License (MIT) Copyright (c) 2020 Sergey Romanenko