Skip to main content

fromKeysOf

Note

This is a point-in-time snapshot of the API documentation from January 2026. Going forward, we will not be maintaining a public copy of these references, and recommend users to refer to the built-in signature helpers available in the Hack LSP instead for complete and up-to-date information.

Creates a Vector from the keys of the specified container

public static function fromKeysOf<Tk as arraykey>(
?KeyedContainer<Tk, mixed> $container,
): Vector<Tk>;

Every key in the provided KeyedContainer will appear sequentially in the returned Vector, with the next available integer key assigned to each.

Parameters

Returns

Examples

This example adds string keys from a Map to a Vector as its values:

$fruit_calories = Map {
'apple' => 95,
'orange' => 45,
};

$vegetable_calories = darray[
'cabbage' => 176,
'potato' => 163,
];

// Create a Vector from the keys of a Map
$fruit_names = Vector::fromKeysOf($fruit_calories);
\var_dump($fruit_names);

// Create a Vector from the keys of an associative array
$vegetable_names = Vector::fromKeysOf($vegetable_calories);
\var_dump($vegetable_names);

This example creates new Vectors from an int-keyed Map and an associative array:

$uploaders_by_id = Map {
4993063 => 'Amy Smith',
9361760 => 'John Doe',
};

$commenters_by_id = darray[
7424854 => 'Jane Roe',
5740542 => 'Joe Bloggs',
];

// Create a Vector from the integer keys of a Map
$uploader_ids = Vector::fromKeysOf($uploaders_by_id);
\var_dump($uploader_ids); // $uploader_ids contains 4993063, 9361760

// Create a Vector from the integer keys of an associative array
$commenter_ids = Vector::fromKeysOf($commenters_by_id);
\var_dump($commenter_ids); // $commenter_ids contains 7424854, 5740542