PHP 8.5.0 Beta 3 available for testing

Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys โ€” ใƒฉใƒณใƒ€ใƒ ใซ้…ๅˆ—ใฎใ‚ญใƒผใ‚’้ธๆŠžใ™ใ‚‹

่ชฌๆ˜Ž

public Random\Randomizer::pickArrayKeys(array $array, int $num): array

ๆŒ‡ๅฎšใ•ใ‚ŒใŸ array ใซๅญ˜ๅœจใ™ใ‚‹ใ€ num ๅ€‹ใฎ็•ฐใชใ‚‹้…ๅˆ—ใฎใ‚ญใƒผใ‚’็ญ‰็ขบ็އใซ้ธใณใพใ™ใ€‚

ๆŒ‡ๅฎšใ•ใ‚ŒใŸ array ใฎใ€ ๅ€‹ใ€…ใฎใ‚ญใƒผใŒ่ฟ”ใ•ใ‚Œใ‚‹็ขบ็އใฏ็ญ‰ใ—ใใชใ‚Šใพใ™ใ€‚

่ญฆๅ‘Š

้…ๅˆ—ใฎใ‚ญใƒผใฎ้ธใฐใ‚Œๆ–นใฏใ€ ๆŒ‡ๅฎšใ•ใ‚ŒใŸ array ใฎๅ†…้ƒจๆง‹้€ ใซไพๅญ˜ใ—ใพใ™ใ€‚ ใตใŸใคใฎ้…ๅˆ—ใŒ็ญ‰ใ—ใใ€ใ‹ใค Random\Engine ใฎๅ†…้ƒจ็š„ใชใ‚นใƒ†ใƒผใƒˆใŒ็ญ‰ใ—ใใฆใ‚‚ใ€ ๆŒ‡ๅฎšใ•ใ‚ŒใŸ้…ๅˆ—ใฎไฝœใ‚‰ใ‚Œๆ–นใซใ‚ˆใฃใฆใฏ่ฟ”ใ•ใ‚Œใ‚‹ใ‚ญใƒผใŒ็•ฐใชใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

ใƒ‘ใƒฉใƒกใƒผใ‚ฟ

array

ใ‚ญใƒผใ‚’้ธใถ้…ๅˆ—

num

่ฟ”ใ™ในใ้…ๅˆ—ใฎใ‚ญใƒผใฎๆ•ฐใ€‚ 1 ไปฅไธŠใ‹ใคใ€ array ใฎ่ฆ็ด ๆ•ฐไปฅไธ‹ใงใ‚ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚

ๆˆปใ‚Šๅ€ค

array ใฎ ็•ฐใชใ‚‹ num ๅ€‹ใฎใ‚ญใƒผใ‚’ๅซใ‚“ใ ้…ๅˆ—ใ‚’่ฟ”ใ—ใพใ™ใ€‚

่ฟ”ใ•ใ‚Œใ‚‹้…ๅˆ—ใฏใƒชใ‚นใƒˆ (array_is_list()) ใซใชใ‚Šใพใ™ใ€‚ ใ“ใ‚Œใฏ array_keys() ใŒ่ฟ”ใ™้…ๅˆ—ใฎใ‚ตใƒ–ใ‚ปใƒƒใƒˆใงใ™ใ€‚

ใ‚จใƒฉใƒผ / ไพ‹ๅค–

  • num ใฎๅ€คใŒ 1 ใ‚ˆใ‚Šๅฐใ•ใ‹ใฃใŸใ‚Šใ€ array ใฎ่ฆ็ด ๆ•ฐใ‚ˆใ‚Šๅคงใใ„ๅ ดๅˆใ€ ValueError ใŒใ‚นใƒญใƒผใ•ใ‚Œใพใ™ใ€‚
  • Random\Randomizer::$engine ใซๅญ˜ๅœจใ™ใ‚‹ Random\Engine::generate() ใƒกใ‚ฝใƒƒใƒ‰ ใŒใ‚นใƒญใƒผใ—ใŸใ€ใ‚ใ‚‰ใ‚†ใ‚‹ Throwable ใŒใ‚นใƒญใƒผใ•ใ‚Œใพใ™ใ€‚

ไพ‹

ไพ‹1 Random\Randomizer::pickArrayKeys() ใฎไพ‹

<?php
$r
= new \Random\Randomizer();

$fruits = [ 'red' => '๐ŸŽ', 'green' => '๐Ÿฅ', 'yellow' => '๐ŸŒ', 'pink' => '๐Ÿ‘', 'purple' => '๐Ÿ‡' ];

// ้…ๅˆ—ใฎใ‚ญใƒผใ‚’ใตใŸใคใ€ใƒฉใƒณใƒ€ใƒ ใซๅ–ใ‚Šๅ‡บใ—ใพใ™
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

// ๅˆฅใฎ้…ๅˆ—ใฎใ‚ญใƒผใ‚’3ใคๅ–ใ‚Šๅ‡บใ—ใพใ™
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
?>

ไธŠใฎไพ‹ใฎๅ‡บๅŠ›ใฏใ€ ใŸใจใˆใฐไปฅไธ‹ใฎใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚

Keys: yellow, purple
Keys: red, green, yellow

ไพ‹2 ใƒฉใƒณใƒ€ใƒ ใซๅ€คใ‚’ๅ–ใ‚Šๅ‡บใ™

<?php
$r
= new \Random\Randomizer();

$fruits = [ 'red' => '๐ŸŽ', 'green' => '๐Ÿฅ', 'yellow' => '๐ŸŒ', 'pink' => '๐Ÿ‘', 'purple' => '๐Ÿ‡' ];

$keys = $r->pickArrayKeys($fruits, 2);
// ๅ–ใ‚Šๅ‡บใ—ใŸใ‚ญใƒผใฎๅ€คใ‚’ๆคœ็ดขใ—ใพใ™
$selection = array_map(
static fn (
$key) => $fruits[$key],
$keys
);

echo
"Values: ", implode(', ', $selection), "\n";
?>

ไธŠใฎไพ‹ใฎๅ‡บๅŠ›ใฏใ€ ใŸใจใˆใฐไปฅไธ‹ใฎใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚

Values: ๐ŸŽ, ๐Ÿ‡

ๅ‚่€ƒ

  • array_keys() - ้…ๅˆ—ใฎใ‚ญใƒผใ™ในใฆใ€ใ‚ใ‚‹ใ„ใฏใใฎไธ€้ƒจใ‚’่ฟ”ใ™
๏ผ‹add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top