Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray Преобразует коллекцию в array

Описание

public Ds\Map::toArray(): array

Преобразует коллекцию в array.

Предостережение

Коллекции пар, содержащие нескалярные ключи не могут быть преобразованы в массив (array).

Предостережение

Массив (array) будет считать все числовые ключи за целочисленные, т.е. оба ключа "1" и 1 будут восприняты как 1 и только один из элементов попадёт в результирующий массив.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Map::toArray()

<?php
$map 
= new \Ds\Map([
    
"a" => 1,
    
"b" => 2,
    
"c" => 3,
]);

var_dump($map->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
add a note add a note

User Contributed Notes 1 note

up
0
foalford at gmail dot com
3 years ago
When using Hashable object as $key, Map::put() will not call the Hashable::hash() on the key until later. For example

<?
class Key implements \Ds\Hashable
{
    protected
$id;

    public function
__construct($id)
    {
       
$this->id = $id;
    }

    public function
equals($obj) : bool
   
{
        return
$this->id == $obj->id;
    }

    public function
hash()
    {
        return
$this->id;
    }
}
$map = new \Ds\Map();
$myki = new Key('myki');

$map->put($myki, "Value String");

var_dump($map->get($myki));
echo
'Map::put() store the Hashable object and it cause error in toArray()'. PHP_EOL;
var_dump($map->toArray());
?>
To Top