ThinkPHP 中系统函数有哪些

ThinkPHP 中系统函数有哪些,第1张

首先给大家介绍ThinkPHP函数详解:M方法 M方法用于实例化一个基础模型类,和D方法的区别在于: 1、不需要自定义模型类,减少IO加载,性能较好; 2、实例化后只能调用基础模型类(默认是Model类)中的方法; 3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息; D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了。 M方法的调用格式: M('[基础模型名:]模型名','数据表前缀','数据库连接信息') 我们来看下M方法具体有哪些用法: 1、实例化基础模型(Model) 类 在没有定义任何模型的时候,我们可以使用下面的方法实例化一个模型类来进行 *** 作: //实例化User模型 $User = M('User'); //执行其他的数据 *** 作 $User->select(); 这种方法最简单高效,因为不需要定义任何的模型类,所以支持跨项目调用。缺点也是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的CURD *** 作。 $User = M('User'); 其实等效于: $User = new Model('User'); 表示 *** 作think_user表。M方法和D方法一样也有单例功能,多次调用并不会重复实例化。M方法的模型名参数在转换成数据表的时候会自动转换成小写,也就是说ThinkPHP的数据表命名规范是全小写的格式。 2、实例化其他公共模型类 第一种方式实例化因为没有模型类的定义,因此很难封装一些额外的逻辑方法,不过大多数情况下,也许只是需要扩展一些通用的逻辑,那么就可以尝试下面一种方法。 $User = M('CommonModel:User'); 改用法其实等效于: $User = new CommonModel('User'); 因为系统的模型类都能够自动加载,因此我们不需要在实例化之前手动进行类库导入 *** 作。模型类CommonModel必须继承Model。我们可以在CommonModel类里面定义一些通用的逻辑方法,就可以省去为每个数据表定义具体的模型类,如果你的项目已经有超过100个数据表了,而大多数情况都是一些基本的CURD *** 作的话,只是个别模型有一些复杂的业务逻辑需要封装,那么第一种方式和第二种方式的结合是一个不错的选择。 3、传入表前缀、数据库和其他信息 M方法有三个参数,第一个参数是模型名称(可以包括基础模型类和数据库),第二个参数用于设置数据表的前缀(留空则取当前项目配置的表前缀),第三个参数用于设置当前使用的数据库连接信息(留空则取当前项目配置的数据库连接信息),例如: $User = M('db2User','think_'); 表示实例化Model模型类,并 *** 作db2数据库中的think_user表。 如果第二个参数留空或者不传,表示使用当前项目配置中的数据表前缀,如果 *** 作的数据表没有表前缀,那么可以使用: $User = M('db1User',null); 表示实例化Model模型类,并 *** 作db1数据库中的user表。 如果你 *** 作的数据库需要不同的用户账号,可以传入数据库的连接信息,例如: $User = M('User','think_','mysql://user_a:1234@localhost:3306/thinkphp'); 表示基础模型类用Model,然后对think_user表进行 *** 作,用user_a账号进行数据库连接, *** 作数据库是thinkphp。 第三个连接信息参数可以使用DSN配置或者数组配置,甚至可以支持配置参数。 例如,在项目配置文件中配置了: 'DB_CONFIG'=>'mysql://user_a:1234@localhost:3306/thinkphp'; 则可以使用: $User = M('User','think_','DB_CONFIG'); 基础模型类和数据库可以一起使用,例如: $User = M('CommonModel:db2User','think_'); 如果要实例化分层模型的话,利用公共模型类的方式,我们可以使用: M('UserLogic:User'); 来实例化UserLogic,虽然这样做的意义不大,因为可以用 D('User','Logic'); 实现同样的功能。 ThinkPHP函数详解:R方法 R方法用于调用某个控制器的 *** 作方法,是A方法的进一步增强和补充。关于A方法的用法见这里。 R方法的调用格式: R('[项目://][分组/]模块/ *** 作','参数','控制器层名称') 例如,我们定义了一个 *** 作方法为: class UserAction extends Action { public function detail($id){ return M('User')->find($id); } } 那么就可以通过R方法在其他控制器里面调用这个 *** 作方法(一般R方法用于跨模块调用) $data = R('User/detail',array('5')); 表示调用User控制器的detail方法(detail方法必须是public类型),返回值就是查询id为5的一个用户数据。如果你要调用的 *** 作方法是没有任何参数的话,第二个参数则可以留空,直接使用: $data = R('User/detail'); 也可以支持跨分组和项目调用,例如: R('Admin/User/detail',array('5')); 表示调用Admin分组下面的User控制器的detail方法。 R('Admin://User/detail',array('5')); 表示调用Admin项目下面的User控制器的detail方法。 官方的建议是不要在同一层多太多调用,会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助31的新特性多层控制器,单独添加一个控制器层用于接口调用,例如,我们增加一个Api控制器层, class UserApi extends Action { public function detail($id){ return M('User')->find($id); } } 然后,使用R方法调用 $data = R('User/detail',array('5'),'Api'); 也就是说,R方法的第三个参数支持指定调用的控制器层。 同时,R方法调用 *** 作方法的时候可以支持 *** 作后缀设置C('ACTION_SUFFIX'),如果你设置了 *** 作方法后缀,仍然不需要更改R方法的调用方式。 以上内容给大家分享了ThinkPHP函数详解之M方法和R方法,希望对大家有所帮助。

取余函数

PHP取余函数

PHP两个取余

MOD(x,y)

x%y

MOD

例如:9/3,9是被除数,3为除数mod函数是一个求余函数,其格式为:

mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。那么:两个同号整数求余与你所知的两个正数求余完全一样(即两个负整数与两个正整数的算法一样)。

一、两个异号整数求余

1函数值符号规律(余数的符号)

mod(负,正)=正

mod(正,负)=负

结论:两个整数求余时,其值的符号为除数的符号。

2取值规律

先将两个整数看作是正数,再作除法运算

①能整除时,其值为0

②不能整除时,其值=除数×(整商+1)-被除数

例:mod(9,-8)=-7

即:9除以8的整数商为1,加1后为2;其与除数之积为18;再与被数之差为7;取除数的符号。所以值为-7。

二、两个小数求余

取值规律:被除数-(整商×除数)之后在第一位小数位进行四舍五入。

例:mod(9,12)=1

即:9除12其整商为7;7与除数12之积为84;84四舍五入之后为8;被除数9与8之差为1。故结果为1。

例:mod(9,24)=0

即:9除22其整商为4;4与除数22这积为88;88四舍五入之后为9;被除数9与9之差为0。故结果为0。

OK,就这些不知能否满足您的需要?

%

复制代码

代码如下:

<php

echo

15%4;

//结果是

3

说说php取余运算(%)的那点事

今天我是看到中这个例子:http://zhidaobaiducom/question/41130500html

,才想研究下php取余的!

复制代码

代码如下:

<php

$val=945;

$result=$val100;

echo

$result%100;

//44

>

提问者奇怪,为什么上面输出的记过是44

而不是想象中的45

,如果你这样:

echo

945%100

//45

那么结果应该是45的,这是因为php默认对变量进行取整进行取余运算的。

关于php浮点数,情况laruence博客文章:http://wwwlaruencecom/2013/03/26/2884html

然后看看下面的php代码:

复制代码

代码如下:

<php

/

name:

mckee

blog:

http://wwwphpddtcom

/

$val=945;

$result=$val100;

echo

intval($result);

//这里输出944

echo

$result%100;

//这里输出44

echo

fmod(floatval($result),100);

//这里输出45

>

对于大整数,php会出现溢出,可能返回负数情况(这是因为php默认使用整数取余的,所以你要把它转换成float类型(如上))可以这样做:

复制代码

代码如下:

function

Kmod($bn,

$sn)

{

return

intval(fmod(floatval($bn),

$sn));

}

PHP数组的总结(很全面啊)

一、什么是数组

数组就是一组数据的集合,把一系列数据组织起来,形成一个可 *** 作的整体。数组的每个实体都包含两项:键和值。

二、声明数据

在PHP中声明数组的方式主要有两种:一是应用array()函数声明数组,一是直接为数组元素赋值。

1array()函数声明的数

一、什么是数组

数组就是一组数据的集合,把一系列数据组织起来,形成一个可 *** 作的整体。数组的每个实体都包含两项:键和值。

二、声明数据

在PHP中声明数组的方式主要有两种:一是应用array()函数声明数组,一是直接为数组元素赋值。

<1>array()函数声明的数组的方式array([mixed])

参数mixed的语法为key=>value

如,<php

$array=array("1"=>"编","2"=>"程","3"=>"词","4"=>"典");

print_r($array);

echo

"<br>";

echo

$array[1];

//注意:下标默认是从0开始

echo

$array[2];

echo

$array[3];

echo

$array[4];

>

<2>直接为数组元素赋值。如果在创建数组时不知所创建数组的大小,或在实际编写程序时数组的大小可能发生变化,采用这种数组创建的方法较好。

如,<php

$array[1]="I";

$array[2]="love";

$array[3]="PHP";

print_r($array);

//输出所创建数组的结构

>

三、数组的类型

PHP支持两种数组:索引数组(indexed

array)和联合数组(associative

array),前者使用数字作为键,后者使用字符串作为键。

四、输出数组

在PHP中对数组元素输出,可以通过echo和print语句来实现,但这只能对数组中某一元素进行输出;要将数组结构输出则要使用print_r()函数,其语法:print_r(mixed

expression),参数expression为普通的整形、字符型或实型变量则输出该变量本身,如果该参数为数组,则按一定键值和元素的顺序显示出该数组中的所有元素。

五、数组的构造

一维数组:

当一个数组的元素是变量时,则称其为一维数组。

声明一位数组:

类型说明符

数组名[常量表达式];

二维数组:

当一个数组的元素是一个一位数组时,则称之为二维数组。

如,<php

$str

=

array

(

"网络编程语言"=>array

("PHP","JSP","ASP"),

"体育项目"=>array

("m"=>"足球","n"=>"篮球"));

print_r

(

$str)

;

>

六、遍历数组

遍历数组中的所有元素是常用的一种 *** 作,在遍历的过程中可以完成查询或其他功能。在PHP中遍历数组的方法有多种,下面介绍最常用的两种方法。

<1>使用foreach结构遍历数组;

<2>使用list()函数遍历数组,list()函数仅能用于数字索引的数组,且数字索引从0开始。

例:综合使用list()和each()认证用户登录:

<php

//输出用户登录信息

while(list($name,$value)=each($_POST)){

if($name!="submit"){

echo

"$name=$value<br>";

}

}

>

七、统计数组元素个数

在PHP中,使用count()函数对数组中的元素个数进行统计,语法为:int

coun(mixed

array[,int

mode]),其中参数array为必要参数,mode为可选参数,若选中COUNT——RECURSIVE(或1),本函数将递归地对数组数组。如,

<php

$array

=

array("php"

=>

array("PHP函数参考大全","PHP程序开发范例宝典","PHP数据库系统开发完全手册"),

"asp"

=>

array("ASP经验技巧宝典")

);

//声明一个二维数组

echo

count($array,COUNT_RECURSIVE);//递归统计数组元素的个数,运行结果为6

>

八、数组排序

<1>使用sort()和rsort()分别对数组进行升序和降序,如,

<php

$array=array(5,26,37,18,9,42,88,66);

$array1=sort($array);

for($i=0;$i<count($array);$i++){

echo

$array[$i]" ";

}

echo

"<br>";

$array1=rsort($array);

for($i=0;$i<count($array);$i++){

echo

$array[$i]" &nbsp";

}

>

运行结果:

5

9

18

26

37

42

66

88

88

66

42

37

26

18

9

5

<2>使用ksort()和asort()对关联数组排序

如果使用了相关数组,在排序后还要保持关键字和值的排序一致,这是就需要使用ksort()和asort()函

数,如,

<php

$array=array('php'=>1,'jsp'=>2,'asp'=>3);

ksort($array);

print_r($array);

echo

"<br>";

asort($array);

print_r($array);

>

运行结果:

Array

(

[asp]

=>

3

[jsp]

=>

2

[php]

=>

1

)

Array

(

[php]

=>

1

[jsp]

=>

2

[asp]

=>

3

)

php图像处理函数大全

php处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等。需要的朋友可以参考下

一、创建资源

imagecreatetruecolor(width,height);

imagecreatefromgif(名称);

imagecreatefrompng(名称);

imagecreatefromjpeg(名称);画出各种图像

imagegif(资源,保存路径);

imagepng()

imagejpeg();

二、获取属性

imagesx(res//宽度

imagesy(res//高度

getimagesize(文件路径)

返回一个具有四个单元的数组。索引

0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 =

PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10

= JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 430 新加的

IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG

标记。

销毁图像资源

imagedestroy(资源);

三、透明处理

PNG、jpeg透明色都正常,只有gif不正常

imagecolortransparent(resource

image [,int

color])//将某个颜色设置成透明色

imagecolorstotal()

imagecolorforindex();

四、的裁剪

imagecopyresized()

imagecopyresampled();

五、加水印(文字、)

字符串编码转换string iconv ( string $in_charset ,

string $out_charset , string $str )

六、旋转

imagerotate();//制定角度的翻转

七、的翻转

沿X轴 沿Y轴翻转

八、锐化

imagecolorsforindex()

imagecolorat()

bcadd —— 两个任意精度数字的加法计算 (PHP 4, PHP 5, PHP 7, PHP 8)

bcadd ( string $num1 , string $num2 , int $scale = null ): string

注:对 num1 和 num2 求和。

参数:

num1 — 左 *** 作数,字符串类型。

num2 — 右 *** 作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以字符串返回两个 *** 作数求和之后的结果。

范例:

bcsub —— 两个任意精度数字的减法 (PHP 4, PHP 5, PHP 7, PHP 8)

bcsub ( string $num1 , string $num2 , int $scale = null ): string

注: num1 减去 num2 。

参数:

num1 — 左 *** 作数,字符串类型。

num2 — 右 *** 作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以 string 类型返回减法之后的结果。

范例:

bcmul —— 两个任意精度数字乘法计算 (PHP 4, PHP 5, PHP 7, PHP 8)

bcmul ( string $num1 , string $num2 , int $scale = null ): string

注: num1 乘以 num2 。

参数:

num1 — 左 *** 作数,字符串类型。

num2 — 右 *** 作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以 string 类型返回减法之后的结果。

范例:

bcp —— 两个任意精度的数字除法计算 (PHP 4, PHP 5, PHP 7, PHP 8)

bcp ( string $num1 , string $num2 , int $scale = null ): string

注: num1 除以 num2 。

参数:

num1 — 左 *** 作数,字符串类型。

num2 — 右 *** 作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以 string 类型返回减法之后的结果。

范例:

bccomp —— 比较两个任意精度的数字 (PHP 4, PHP 5, PHP 7, PHP 8)

bccomp ( string $num1 , string $num2 , int $scale = null ): int

注: 比较 num1 和 num2 , 并且返回整型数字的结果。

参数:

num1 — 左边的运算数,是一个字符串。

num2 — 右边的运算数,是一个字符串。

scale — 可选的 scale 参数被用作设置指示数字, 在使用来作比较的小数点部分。

返回值: 两个数相等时返回 0; num1 比 num2 小时返回 -1; 其他则返回 1。现在 scale 可以为 null。

范例:

bcmod —— 任意精度数字取模 (PHP 4, PHP 5, PHP 7, PHP 8)

bcmod ( string $num1 , string $num2 , int $scale = null ): string

注: 对 num1 使用 num2 取模。 除非 num2 是零,否则结果必定和 num1 有相同的符号。

参数:

num1 — string 类型的被除数。

num2 — string 类型的除数。

scale — 现在 scale 可以为 null。

返回值: 返回字符串类型取模后的结果,如果 num2 为 0 则返回 null。

范例:

bcpow—— 任意精度数字的乘方 (PHP 4, PHP 5, PHP 7, PHP 8)

bcpow ( string $num , string $exponent , int $scale = null ): string

注: num 的 exponent 次方运算。

参数:

num — string 类型的底数。

exponent — string 类型的指数。 如果指数不是整数,将被截断。 指数的有效范围取决于平台,但起码支持 -2147483648 到 2147483647 的范围。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。

返回值: 返回字符串类型的结果。

范例:

bcpowmod —— 先取次方然后 取模 。 (PHP 5, PHP 7, PHP 8)

bcpowmod ( string $num , string $exponent , string $modulus , int $scale = null ): string

注: 先取次方然后取模。

参数:

base — 左 *** 作数。它是一个字符串类型的参数。

exponent — string 类型的指数。 指数的正确 *** 作数。

modulus — string 类型的 参 数。 接受表示模数的 *** 作数。

scale — 一个整数类型参数。它说明 ( base exponent %mod ) 结果中小数点后的位数。其默认值为 0。

返回值: 该函数将结果作为字符串返回。或者,如果模数为 0 或指数为负,则返回 False。

范例:

bcscale —— 设置/获取所有 bc math 函数的默认小数点保留位数 (PHP 4, PHP 5, PHP 7, PHP 8)

bcscale ( int $scale ): int

设置所有 bc math 函数在未设定情况下的小数点保留位数。

bcscale ( null $scale = null ): int

注: 获取当前的小数点保留位数。

参数:

scale — 小数点保留位数。

返回值: 设置的时候,返回之前的小数点保留位数。否则就是返回当前的位数。

范例:

bcsqrt —— 任意精度数字的二次方根 (PHP 4, PHP 5, PHP 7, PHP 8)

bcsqrt ( string $num , int $scale = null ): string

注: 返回 num 的二次方根。

参数:

num — string 类型的 *** 作数 。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。

返回值: 以 string 类型返回二次方根的结果,如果 num 是负数则返回 null。

范例:

数组处理函数库

日期与时间函数库

目录管理函数库

文件系统函数库

HTTP 相关函数库

图形处理函数库

PHP 选项及相关信息函数库

数学运算函数库

数据库函数库

正则表达式函数库

字符串处理函数库

变量处理函数库

都需要了解

exec()函数和shell_exec()函数

1、exec()函数执行外部系统命令,并将命令输出返回到一个变量中。

2、shell_exec()函数通过shell执行命令,并将命令输出返回到一个字符串中。

  下边提到的几个数组函数的排序有一些共性 数组被作为排序函数的参数 排序以后 数组本身就发生了改变 函数的返回值为bool类型 函数名中出现单a表示association 含义为 在按值排序的过程中 保持key=>value的对应关系不变 函数名中出现单k表示key 含义为 在按值排序的过程中按照数组key而不是数组的值排序 函数名中出现单r的表示reverse 含义为 按照跟不加r的相反的顺序排列 函数名中出现单u的表示user defined 含义为 使用用户自定义函数排序 如果函数的逻辑是参数 <参数 返回负数 则按照升序排列(p 小 返负升) sort函数升序排序

复制代码 代码如下: bool sort ( array &$array [ int $sort_flags= SORT_REGULAR ] ) <php $fruits = array("lemon" "orange" "banana" "apple"); sort($fruits); var_dump($fruits); > 结果 array => string apple (length= ) => string banana (length= ) => string lemon (length= ) => string orange (length= )

  rsort降序排列

复制代码 代码如下: <php $fruits = array("lemon" "orange" "banana" "apple"); rsort($fruits); var_dump($fruits); > 结果 array => string orange (length= ) => string lemon (length= ) => string banana (length= ) => string apple (length= )

  asort按照二维数组值的升序排列(保持key=>value的关联关系)

复制代码 代码如下: <php $fruits = array("d" => "lemon" "a" => "orange" "b" => "banana" "c" => "apple"); asort($fruits); var_dump($fruits); > 结果 array c => string apple (length= ) b => string banana (length= ) d => string lemon (length= ) a => string orange (length= )

  arsort按照二维数组值的降序排列(保持key=>value的关联关系)

复制代码 代码如下: <php $fruits = array("d" => "lemon" "a" => "orange" "b" => "banana" "c" => "apple"); arsort($fruits); var_dump($fruits); > 结果 array a => string orange (length= ) d => string lemon (length= ) b => string banana (length= ) c => string apple (length= )

  ksort按照数组的key升序排列

复制代码 代码如下: <php $fruits = array("d"=>"lemon" "a"=>"orange" "b"=>"banana" "c"=>"apple"); ksort($fruits); var_dump($fruits); > 结果 array a => string orange (length= ) b => string banana (length= ) c => string apple (length= ) d => string lemon (length= )

  krsort按照数组key的降序排列

复制代码 代码如下: <php $fruits = array("d"=>"lemon" "a"=>"orange" "b"=>"banana" "c"=>"apple"); krsort($fruits); var_dump($fruits); > array d => string lemon (length= ) c => string apple (length= ) b => string banana (length= ) a => string orange (length= )

  usort函数按照用户自定义的函数排序

复制代码 代码如下: <php function cmp($a $b) { if ($a == $b) { return ; } return ($a < $b) : ; } $a = array( ); usort($a "cmp"); var_dump($a); >

  结果 array => int => int => int => int => int uksort使用自定义函数按照数组的key排序

复制代码 代码如下: <php function cmp($a $b) { $a = preg_replace( @^(a|an|the) @ $a); $b = preg_replace( @^(a|an|the) @ $b); return strcasecmp($a $b); } $a = array("John" => "the Earth" => "an apple" => "a banana" => ); uksort($a "cmp"); var_dump($a); >

  结果 array an apple => int a banana => int the Earth => int John => int uasort将数组用自定义函数按照value排序 保持索引关系不变

复制代码 代码如下: <php // Comparison function function cmp($a $b) { if ($a == $b) { return ; } return ($a < $b) : ; } // Array to be sorted $array = array( a => b => c => d => e => f => g => h => ); var_dump($array); // Sort and print the resulting array uasort($array cmp ); var_dump($array); >

  结果 array a => int b => int c => int d => int e => int f => int g => int h => int array d => int h => int c => int e => int g => int a => int f => int b => int array_multisort排序多个数组或多维数组

复制代码 代码如下: <php $ar = array( array(" " "a") array( " " ) ); array_multisort($ar[ ] SORT_ASC SORT_STRING $ar[ ] SORT_NUMERIC SORT_DESC); var_dump($ar); >

  结果 array => array => string (length= ) => int => int => int => string a (length= ) => array => int => int => string (length= ) => int => int //说明 上例中 $ar数组优先按照$ar[ ]的字符串值升序排列 如果字符串值相等 再按照$ar[ ]数组的数字值降序排列 array_multisort函数的任意一个位置的参数如果是数组 表示排序时用的值 如果有多个数组参数 优先按照前边的数组值进行排序 如果是常量 例如 SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING 表示排序方法(数组取值前优先) ========================================================================================== PHP二维数组排序函数 PHP一维数组的排序可以用sort() asort() arsort()等函数 但是PHP二维数组的排序需要自定义 以下函数是对一个给定的二维数组按照指定的键值进行排序 先看函数定义

复制代码 代码如下: function array_sort($arr $keys $type= asc ){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == asc ){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[$k] = $arr[$k]; } return $new_array; }

  它可以对二维数组按照指定的键值进行排序 也可以指定升序或降序排序法(默认为升序) 用法示例

复制代码 代码如下: $array = array( array( name => 手机 brand => 诺基亚 price => ) array( name => 笔记本电脑 brand => lenovo price => ) array( name => 剃须刀 brand => 飞利浦 price => ) array( name => 跑步机 brand => 三和松石 price => ) array( name => 手表 brand => 卡西欧 price => ) array( name => 液晶电视 brand => 索尼 price => ) array( name => 激光打印机 brand => 惠普 price => ) ); $ShoppingList = array_sort($array price ); print_r($ShoppingList); lishixinzhi/Article/program/PHP/201311/21145

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12187808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存