Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray Converts the map to an array

说明

public Ds\Map::toArray(): array

Converts the map to an array.

警告

Maps where non-scalar keys are can't be converted to an array.

警告

An array will treat all numeric keys as integers, eg. "1" and 1 as keys in the map will only result in 1 being included in the array.

注意:

Casting to an array is not supported yet.

参数

此函数没有参数。

返回值

An array containing all the values in the same order as the map.

示例

示例 #1 Ds\Map::toArray() example

<?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)
}
添加备注

用户贡献的备注 1 note

up
-1
foalford at gmail dot com
4 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