0

このコードは、$vec 配列から 2 ~ 6 ピッチを選択します。個々のピッチをエコーアウトしたいのですが、興味深いことに、配列内のピッチの配置の数値が得られます (つまり、DFF# ではなく 2 5 6)。

  $pick = rand(2,6);
  $vec = array("C","C#","D","D#","E","F","F#","G","G#","A","A#","B");
  $random_keys = array_rand($vec,$pick);
  foreach ($random_keys as $pitch){
  echo $pitch; echo "<br>";
  }

なぜこれを行うのですか?また、数値ではなくピッチを取得するにはどうすればよいですか?

4

1 に答える 1

3

これを試して:

$pick = rand(2,6);
$vec = array("C","C#","D","D#","E","F","F#","G","G#","A","A#","B");
$random_keys = array_rand($vec, $pick);
foreach ($random_keys as $key) {
  echo $vec[$key], '<br />';
}

array_rand()ドキュメントから:

戻り値

エントリを 1 つだけ選択する場合、array_rand() はランダムなエントリのキーを返します。それ以外の場合は、ランダム エントリのキーの配列を返します。これは、配列からランダムなキーと値を選択できるようにするためです。

于 2013-06-09T04:55:38.973 に答える