PHP Conference Japan 2024

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray 將映射轉換為 陣列

說明

public Ds\Map::toArray(): 陣列

將映射轉換為 陣列

注意

具有非純量鍵的映射無法轉換為 陣列

注意

陣列會將所有數值鍵視為整數,例如,映射中以 "1"1 作為鍵只會導致陣列中包含 1

備註:

目前尚不支援轉換為 陣列

參數

此函式沒有參數。

回傳值

一個包含所有值的 陣列,順序與映射相同。

範例

範例 #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)
}
新增註解

使用者貢獻的註解 1 則註解

foalford at gmail dot com
4 年前
當使用可雜湊物件作為 $key 時,Map::put() 不會立即呼叫鍵上的 Hashable::hash()。例如:

<?
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() 儲存可雜湊物件,並在 toArray() 中造成錯誤'. PHP_EOL;
var_dump($map->toArray());
?>
To Top