PHP Conference Japan 2024

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::fromArray將 PHP 陣列匯入 SplFixedArray 實例

說明

public static SplFixedArray::fromArray(array $array, bool $preserveKeys = true): SplFixedArray

將 PHP 陣列 array 匯入新的 SplFixedArray 實例

參數

陣列

要匯入的陣列。

preserveKeys

嘗試保留原始陣列中使用的數字索引。

返回值

返回一個 SplFixedArray 的實例,其中包含陣列內容。

範例

範例 #1 SplFixedArray::fromArray() 範例

<?php
$fa
= SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3));

var_dump($fa);

$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3), false);

var_dump($fa);
?>

以上範例會輸出:

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

新增註記

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

MuLoT
13 年前
記憶體佔用測試

<?php
echo memory_get_usage()."\n"; // 顯示 627760
$array = array_fill( 0, 2048, 'a' );
echo
memory_get_usage()."\n"; // 824744,所以 $array 佔用 196984

unset( $array );

echo
memory_get_usage()."\n"; // 627792
$spl=SplFixedArray::fromArray( array_fill( 0, 2048, 'a' ) );
echo
memory_get_usage()."\n"; //644944,所以 $spl 只佔用 17151 !!!
?>
To Top