【问题标题】:PHP - rand() - random value from array of namesPHP - rand() - 名称数组中的随机值
【发布时间】:2013-11-06 11:19:06
【问题描述】:

任务描述是使用函数:count()、rand() 和 strtoupper() 从我的 PHP 数组中打印出所有大写的随机名称。 代码:http://ideone.com/nwjyoa


<?php
// Create an array and push on the names
$friends=array("Mike", "Ondrej", "Honza", "Danca", "Misa", "Verca");
array_push($friends, "Michal", "Vendulka", "Daniela");
// Sort the list
sort($friends);
// Randomly select a winner!
$winner = array_rand($friends, 1);
echo "<p>$winner</p>";
// Print the winner's name in ALL CAPS
?>

到目前为止,我从数组中选择了一个随机值,但它给了我它的编号(位置),而不是名称:/
你能指出我解决这个问题的正确方向吗?

【问题讨论】:

    标签: php arrays random


    【解决方案1】:

    获取随机值形式数组的简单方法。

    $color_array =["red","green","blue","light_orange"];
    $color_array[rand(0,3)]
    

    现在每次你都会从 Array 中得到不同的颜色。

    在你的情况下。

     $friends[rand(0,8)]
    

    【讨论】:

      【解决方案2】:

      如果array_rand 返回一个索引,您应该使用该索引进入$friends 数组来获取它的值。

      $winner = array_rand($friends, 1);
      $winner_name = strtoupper($friends[$winner]);
      echo "<p>$winner_name</p>";
      

      【讨论】:

        【解决方案3】:

        如果它返回索引,只需获取数组中给定索引处的值:

        $index = array_rand($friends, 1); // or $index = rand() % count($friends);
        $winner = $friends[$index];
        

        【讨论】:

          【解决方案4】:
          <?php
          // Create an array and push on the names
          // of your closest family and friends
          $family_friends=array();
          
          array_push($family_friends, "Marlon");
          array_push($family_friends, "Johanna");
          array_push($family_friends, "Leonary");
          array_push($family_friends, "Sueann");
          array_push($family_friends, "Olucho");
          array_push($family_friends, "Allyah");
          array_push($family_friends, "Reyna");
          array_push($family_friends, "Cinil");
          array_push($family_friends, "Carl");
          array_push($family_friends, "Martain");
          array_push($family_friends, "Christell");
          array_push($family_friends, "Joy");
          
          // Sort the list
          $sorted = sort($family_friends);
          
          
          $counted = count($family_friends);
          
          print $counted;
          
          // Randomly select a winner!
          
          $win = array_rand($family_friends,1);
          
          // Print the winner's name in ALL CAPS
          
          $winner = strtoupper($win);
          print "<p>$family_friends[$winner] </p>"; ?>
          

          【讨论】:

          • 已经有一个(已接受的)答案与您的答案相似。是什么让你的答案比其他人更好?
          【解决方案5】:

          你得到一个数组索引。只需执行 $friends[$winner] 即可。

          <?php
          // Create an array and push on the names
          $friends=array("Mike", "Ondrej", "Honza", "Danca", "Misa", "Verca");
          array_push($friends, "Michal", "Vendulka", "Daniela");
          // Sort the list
          sort($friends);
          // Randomly select a winner!
          $winner = array_rand($friends, 1);
          echo "<p>$friends[$winner]</p>";
          // Print the winner's name in ALL CAPS
          ?>
          

          【讨论】:

            【解决方案6】:

            你需要像下面这样使用

            echo $friends[$winner];
            

            【讨论】:

              【解决方案7】:

              使用来自array_rand 的值作为$friends 数组的键。

              $winner = strtoupper($friends[array_rand($friends, 1)]);
              

              【讨论】:

              • 当我替换我对 $winner 的定义时,这个对我不起作用。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-02-26
              • 1970-01-01
              • 2011-07-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多