【问题标题】:PHP Array issue (beginner)PHP数组问题(初学者)
【发布时间】:2015-12-27 21:58:54
【问题描述】:

我从我的数组中接收到一个整数值,而不是一个名称。如何更正我的代码以从数组中随机选择一个名称?

$family = array();
        array_push($family, "joe");
        array_push($family, "bill");
        array_push($family, "carl");
    $sorted = sort($family);
    $select = rand(0, count($sorted) - 1);

    echo $select;

【问题讨论】:

  • echo $family[$select]; ?
  • 只是想知道,但你知道你在这里做什么吗?看看array_rand,应该是你需要的。
  • 感谢 frz。我正在研究它巴特。只有我的第二天。我正在关注 codecademy,所以尚未讨论 array_rand。
  • "php 从数组中随机选取。"谷歌的第一个答案是......
  • 而sort() 不返回数组。

标签: php arrays random count array-push


【解决方案1】:
  1. sort() 不返回排序后的数组,它通过引用对传递的数组进行排序。
  2. 像您一样使用rand() 将返回一个随机索引以在数组中使用,例如:echo $family[$select];。

如果您不需要为以后排序的数组,一种更简单的方法是:

shuffle($family);
echo $family[0];

或者如果您确实需要排序:

sort($family);
echo $family[array_rand($family)];

【讨论】:

  • 我认为您将排序和随机拾取混合在一起。不管有没有排序,我都不会在 array_rand 上使用 shuffle(然后选择 0)。我认为后者效率更高。
【解决方案2】:

你的代码

$sorted = sort($family);
 $select = rand(0, count($sorted) - 1);
 echo $select;

替换为,

asort($family);
$select = array_rand($family);
echo "Randomly Selected array value==" . $family[$select];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2014-09-28
    • 1970-01-01
    • 2020-01-04
    • 2020-11-23
    • 2015-03-16
    相关资源
    最近更新 更多