array_rand函数使用技巧,PHP

关于array_rand函数,在文档中的说明是这样的:

array_rand() 函数从数组中随机选出一个或多个元素,并返回。

第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。

常规用法,比如我们从一个数组里面随机输出一些元素:

$arr = array(‘a‘=>‘Dog‘,‘b‘=>‘Cat‘,‘c‘=>‘Horse‘);
$num = rand(1,3);
$keys = array_rand($arr, $num);
foreach($keys as $k){
    echo $arr[$k];
}

这里要输出的元素数使用的是随机的1到3,如里$num=1时,这段代码将会出现错误,因为$num=1时array_rand返回的特么竟然是字符串!

解决方法:

除了使用is_string或is_array等方式做作判断处理以外,无疑我们都更喜欢简便的方法:

$keys = (array) array_rand($arr, $num);

这样当array_rand返回单个键名字符串时,就能强制转换为数组(0=>‘键名‘) 了。

============================================

刚开始学着写一些博客,写得不好的地方请见谅,有帮助的就赏脸关注下吧~

时间: 2024-10-11 06:13:40

array_rand函数使用技巧,PHP的相关文章

php array_rand()函数从数组中随机选择一个或多个元素

php使用array_rand()函数从数组中随机选择一个或多个元素的方法. 使用array_rand() 函数从数组中随机选出一个或多个元素,并返回. array_rand(array,number) 参数 描述 array 必需.规定输入的数组参数. www.jbxue.com number 可选.默认是 1.规定返回多少个随机的元素. 例子: <?php $a=array("a"=>"Dog","b"=>"Cat

array_rand() 函数

定义和用法 array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组 语法 array_rand(array,number) 参数解析 参数 描述 array 必需.规定数组. number 可选.规定返回多少随机键名. 示例 <?php     $a=array("red","green","blue","yellow","brown");  

C语言-第36课 - 函数递归与函数设计技巧

第36课 - 函数递归与函数设计技巧 一. 递归 递归概述 (1) 递归是数学领域中的概念在程序设计中的应用. (2) 递归是一种强有力的程序设计的方法. (3) 递归的本质为函数内部在适当的时候调用自身. 组成部分 (1)递归点:以不同参数调用自身. (2)出口:不在递归调用 下面就是求一个数的阶乘的函数: #include <stdio.h> int func(int x) { if( x > 1 ) { return x * func(x - 1);  //递归点 } else {

JavaScript函数使用技巧

JavaScript中的函数是整个语言中最有趣的一部分,它们强大而且灵活.接下来,我们来讨论JavaScript中函数的一些常用技巧: 一.函数绑定 函数绑定是指创建一个函数,可以在特定的this环境中已指定的参数调用另一个函数. var handler = { message: "handled", handleClick: function(event) { console.log(this.message + ":" + event.type); } }; v

PHP 匿名函数使用技巧

之前写过一篇闭包的使用(点击此处进入),这次深入汇总下php中匿名函数的深入用法和理解: php中的匿名函数 也叫闭包函数 允许指定一个没有名称的函数.把匿名函数赋值给变量,通过变量来调用,举个简单的例子: <?php$anonymousFunc = function($username){echo $username;};$anonymousFunc("乔峰!");技巧1: 将匿名函数放在普通函数中,也可以将匿名函数返回,:这样就构成了一个简单的闭包 原文地址:http://b

Sql Server常用函数及技巧

使用Sql Server好长时间了,今天特别想总结一下,算是回顾吧! 常用函数: 1. ISNULL(columnName, '') 先判断该字段是否为空,如果为空,返回''; 否则返回该字段本来的值. 2. DATEDIFF(datepart,startdate,enddate) 不罗嗦,直接参考 链接 3. 实用语句: 1. 有时候项目中定义的储存过程比较多,需要确定某一个表被哪些stored procedure使用了,可以有如下两种方法: a. SSMS界面上,选中要查的表,右键,点击查找

c/c++获取系统时间函数的技巧

UTC国际标准时刻)CalendarTime日历时刻)epoch时刻点)clocktick时钟计时单元) 1.概念在C/C++中,对字符串的操作有许多值得注意的疑问,相同,C/C++对时刻的操作也有许多值得大 家注意的地方.近来,技术群中有许多网友也屡次问到过C++语言中对时刻的操作.获取和显现等等的 疑问.下面,这篇文章中,笔者将首要介绍在C/C++中时刻和日期的运用办法.经过学习许多C/C++库, 能够有许多操作.运用时刻的办法.但在这之前你需求了解一些"时刻"和"日期&

sql server 之函数小技巧 &amp;&amp; 整数类型为空是用空字符串替代实现

1.判空函数 说明:使用指定的替换值替换 NULL. 语法:ISNULL ( check_expression , replacement_value ) 参数: check_expression:将被检查是否为 NULL 的表达式.check_expression 可以为任何类型. replacement_value:当 check_expression 为 NULL 时要返回的表达式.replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型.

Android 屏幕手势滑动中onFling()函数的技巧分析

关于如何处理手势操作以及那四个基本固定的顺序我就不讲解了,这里直接跳到我们获得瞬间滑动后回调onFling()这个抽象函数时,应该如何根据参数比较准确的判断滑动方向.如果你没有前面的基础知识,你可以去看看这篇文章:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1020/448.html 我看到网上大部分资料,对这个抽象函数的实现都是相当简单的: 1 2 3 4 5 6 @Override   public boolean onFli