HH\Vector::fromKeysOf

Creates a Vector from the keys of the specified container.

Description

public static function fromKeysOf(
  ?KeyedContainer<Tk,Tv2> $container,
): Vector<Tk>

Creates a Vector from the keys of the specified container.

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

Parameters

  • ?KeyedContainer<Tk,Tv2> $container - The container with the keys used to create the Vector.

Return Values

Examples

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

<?hh

namespace Hack\UserDocumentation\API\Examples\Vector\FromKeysOf\Strings;

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

$vegetable_calories = array(
  '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);
Output
object(HH\Vector)#2 (2) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "orange"
}
object(HH\Vector)#3 (2) {
  [0]=>
  string(7) "cabbage"
  [1]=>
  string(6) "potato"
}

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

<?hh

namespace Hack\UserDocumentation\API\Examples\Vector\FromKeysOf\Ints;

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

$commenters_by_id = array(
  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
Output
object(HH\Vector)#2 (2) {
  [0]=>
  int(4993063)
  [1]=>
  int(9361760)
}
object(HH\Vector)#3 (2) {
  [0]=>
  int(7424854)
  [1]=>
  int(5740542)
}