PHP数组问题

时间:2012-10-19 06:04:21

标签: php arrays

代码中的问题;

<?php
/*
* @array
*/
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2); //What does the two mean?
echo $input[$rand_keys[1]] . "\n"; //What does the 1 stand for? and Why do I have to define $input again if it was defined in $rand_keys?
?>

这些数字是什么意思?感谢。

编辑:

我试过了:

$input = array("test", "test2", "test3", "test4");
$rand_keys = array_rand($input, 2);
$echo = $input[$rand_keys[0]];
echo $echo;

它显示出test3。我在阵列兰特中只做了2次。为什么显示3?

7 个答案:

答案 0 :(得分:1)

这里解释了array_rand函数:

http://php.net/manual/en/function.array-rand.php

因此2指定了您要选择的条目数。

数字1代表数组rand_keys中的索引1并且您没有再次定义输入,您只是访问输入数组中的值。

希望这有帮助!

答案 1 :(得分:0)

如果您对功能有疑问,请阅读手册:array_rand

第二个论点描述如下:

  

num_req

     

指定要选择的条目数。试图挑选更多   元素比数组中的元素将导致E_WARNING级别   错误。

这行代码:

echo $input[$rand_keys[1]] . "\n";

打印出$input的元素,其索引等于$rand_keys[1]$rand_keys的第二个元素

答案 2 :(得分:0)

array_rand — Pick one or more random entries out of an array

'number'表示数组中随机值的数量。

更多参考 http://php.net/manual/en/function.array-rand.php

例如: http://www.developphp.com/view_lesson.php?v=477

答案 3 :(得分:0)

array_rand将为您提供数组中的一些随机条目。

在这种情况下,2指定您需要来自数组的两个随机条目。

[1]表示数组中的第二个元素。 (数组元素从0开始)

答案 4 :(得分:0)

array_rand()中的第二个参数表示:

从数组中挑选一个或多个随机条目,并返回随机条目的一个或多个键。

1代表索引1的数组中的元素。在这种情况下,它是数组中的第二个元素,因为它从0开始索引。

您没有再次定义任何内容,只是使用$input数组中的第二个键从$random_keys打印元素。

答案 5 :(得分:0)

$rand_keys = array_rand($input, 2); //What does the two mean?

2表示您要随机选择的条目数。你提到2,所以将挑选2个随机条目。

echo $input[$rand_keys[1]] . "\n"; //What does the 1 stand for? and Why do I have to define $input again if it was defined in $rand_keys?

1代表什么? array_rand返回包含密钥的数组,1包含array_rand返回的第二个条目。

为什么我必须再次定义$ input,如果它是在$ rand_keys中定义的那样? array_rand仅会将条目作为key(s)而不是值返回,如果您需要该值,那么您将$input

答案 6 :(得分:0)

array_rand函数用于从数组中选择一个或多个随机条目。

在您的代码array_rand($input,2)中,2是您要从$input数组中提取的条目数

回答你的问题

What does the 1 stand for? and Why do I have to define $input again if it was defined in $rand_keys?

array_rand returns an array of random keys.

So to access the value from $input array you need to use it as index only i.e. $rand_key[1] is one of the index of $input that's why you need to mention $input.