2015-12-27 67 views
-3

我正在从我的数组中接收一个整数值,而不是名称。我如何纠正我的代码从数组中随机选择一个名称?PHP Array问题(初学者)

$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; 
+0

'echo $ family [$ select];'? – frz3993

+1

只是想知道,但你有什么想法你在这里做什么?看看array_rand,这应该是你需要的。 –

+1

谢谢frz。我正在研究它。只有我的第二天。我正在关注codecademy,所以array_rand还没有被讨论过。 “ – DevEarl

回答

1
  1. sort()不返回数组排序,它按引用传递的数组。
  2. 像你这样使用rand()会返回一个随机索引在数组中使用,如:echo $family[$select];

如果不需要排序,以便以后阵列更简单的方法是:

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

或者,如果你确实需要它排序:

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

我认为你的混合排序和随机拾取。有或没有排序我不会使用shuffle(然后选择0),array_rand。我认为后者更有效率。 –

+0

谢谢你abracadaver – DevEarl

0

您的代码

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

替换为,

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