array小问题

Qyee16 2016-02-09 03:50:55
<?php
$roomlist=array(
'0'=>array(
'id' => '11'
),
'1'=>array(
'id' => '22'
),
);
$rand_keys = array_rand($roomlist, 1);
var_dump($rand_keys);
echo gettype($rand_keys);
echo ("\n");
echo ("\n");

$rand_keys = array_rand($roomlist, 2);
var_dump($rand_keys);
echo gettype($rand_keys);
?>


输出为:
int(0)
integer

array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
array

一个小问题,对于第一个测试,array_rand($roomlist, 1); 怎么返回的是 integer,而不是array呢?
...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
null0000000 2016-02-13
  • 打赏
  • 举报
回复
手册上已经写的很清楚了: ------ 返回值 : 如果你只取出一个,array_rand()返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。
Qyee16 2016-02-13
  • 打赏
  • 举报
回复
bug果然是bug。。 脚本语言好奇妙。。。。。啦啦啦啦啦啦啦啦啦
Qyee16 2016-02-13
  • 打赏
  • 举报
回复
c++er不懂不懂啦啦啦啦啦 另外楼上的回答,难道没看出来我是新手,如果找到了正确/很好的解释我也不开贴了。。。。。。。。。。 自己找到了官网的说法 http://php.net/manual/zh/function.array-rand.php 以后遇到像我一样的新手们,这是php的官方手册
xuzuning 2016-02-12
  • 打赏
  • 举报
回复
定义和用法 array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。 说明 array_rand() 函数从数组中随机选出一个或多个元素,并返回。 第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。 如果看不懂手册,或者非要质疑手册上的描述。那么神仙也帮不到你
Qyee16 2016-02-10
  • 打赏
  • 举报
回复
引用 2 楼 u014234850 的回复:
貌似只是返回的key
是只返回key,,在c++里,返回array就是array,返回integer时返回就是integer,,不会因为函数的参数改变而改变。。 不一致时需要特殊处理。。而且也不合理,一个函数两种返回类型。。。看我的测试
Qyee16 2016-02-10
  • 打赏
  • 举报
回复
引用 1 楼 a1905957868 的回复:
array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。
我疑惑的是,为什么array_rand 的第二个参数为 1时,返回的不是 array,而是 integer 如果我这样使用就会出bug

<?php
$roomlist=array(
'0'=>array(
'id' => '11'
),
);
$array_size = count($roomlist)
$rand_keys = array_rand($roomlist, $array_size);   //size为1时,返回为integer,size>=2时,返回的是array,下面的操作无法统一
var_dump($rand_keys);
echo gettype($rand_keys);
echo ("\n");
echo ("\n");
 
$val = $roomlist[$rand_keys[0]];
看到了不?? 由于 $rand_keys为integer时存在bug
saber_9192 2016-02-09
  • 打赏
  • 举报
回复
貌似只是返回的key
a1905957868 2016-02-09
  • 打赏
  • 举报
回复
array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧