PHP数组以及相关函数

Download Report

Transcript PHP数组以及相关函数

输出数组
Result:
Array
(
[0] => zzu
[1] => php
[2] => MySQL
[3] => javascript
[4] => html
[5] => css
)
创建数组

语法 array ( [mixed ...] )
可以用 array() 语言结构来新建一个 array.它接受一定数量用逗号分隔的 key => value 参
数对.

注: array() 是一个语言结构,用于字面上表示数组,不是常规的函数. key 可以是 integer 或
者 string, value 可以是任何值

创建一个数组
$arr = array();

创建一个数组并赋值
$arr = array(‘zzu','php','MySQL','javascript','html','css');

或者这样赋值:
$array[] = ‘zzu';
$array[] = 'php';
$array[] = 'MySQL';
$array[] = 'javascript';
$array[] = 'html';
$array[] = 'css'
创建数组

带键值的数组
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);

或者这样赋值:
$array[‘zzu'] = 'www. zzu.edu.cn';
$array['php'] = 'www.php.net';
$array['mysql'] = 'www.mysql.com';
$array['apache'] = 'www.apache.org';

注意数组的最后一项是不能加逗号的,这样定义是错误的
array(‘zzu','php',);
创建数组

如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该
值加1.如果不存在最大的整数索引值,则以0开始作为索引值.
示例:
<?php
$arr = array(
‘zzu' => 'www.zzu.edu.cn',
'php' => 'www.php.net',
'www.mysql.com',
'www.apache.org'
);
print_r($arr);
?>
Result:
Array
(
[zzu] => www.zzu.edu.cn
[php] => www.php.net
[0] => www.mysql.com
[1] => www.apache.org
)

上例中不存在最大的整数索引值,则以0开始作为索引值.
创建数组
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
2 => 'www.mysql.com',
'www.apache.org'
);
print_r($arr);
?>
Result:
Array
(
[zzu] => www. zzu.edu.cn
[php] => www.php.net
[2] => www.mysql.com
[3] => www.apache.org
)

上例中存在最大的整数索引值2,新的键名将为3
创建数组

数组的键是唯一的,如果指定的键名已经有了值,则该值会被覆盖.
<?php
$array[‘zzu'] = 'www. zzu.edu.cn';
$array['php'] = 'www.php.net';
$array['mysql'] = 'www.mysql.com';
$array['apache'] = 'www.apache.org';
$array['mysql'] = '我覆盖掉mysql之前赋的值了';
print_r($array);
?>
Result:
Array
(
[zzu] => www. zzu.edu.cn
[php] => www.php.net
[mysql] => 我覆盖掉mysql之前赋的值了
[apache] => www.apache.org
)
创建数组

下面介绍一下range()函数
range -- 建立一个包含指定范围单元的数组
说明
array range ( mixed low, mixed high [, number step] );
新参数: 可选的 step 参数是 PHP 5.0.0 新加的.如果给出了 step 的值,它将被作为单元之间
的步进值.step 应该为正值.如果未指定,step 则默认为 1.
<?php
$arr = range(0,9);
print_r($arr);
?>
Result:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
)
创建数组
多维数组的定义

<?php
$states = array(
“Ohio” => array (“population” =>”11,353,140”, “capital” => “Columbs”),
“Nebraska” =>array (“population” =>”1,711,263”,”captal” => “Omaha”)
)
?>

如果引用Ohio的人口:
$states[“Ohio”] [“population”]
这将返回以下值:
11,353,140
增加和删除数组元素

PHP为扩大和缩小数组提供了一些函数.对于那些希望模仿各种堆栈、队列实现(FIFO等)
的程序员来说,这些函数可以提供便利.顾名思义,从这些函数的函数名(push、pop、shift
和unshift)就清楚地反映出其作用.

队列与栈数据结构的区别:队列是先进先出(FIFO),栈是后进先出。

增加元素 $arrayname[ ]
<?php
$arr = array(‘zzu','php','MySQL','javascript');
$arr[] = 'html';//增加一个元素插到最后
$arr['css'] = 'css';//再增加一个元素插到最后
print_r($arr);
?>
Result:
Array
(
[0] => zzu
[1] => php
[2] => MySQL
[3] => javascript
[4] => html
[css] => css
)
增加和删除数组元素

删除元素 unset()
用unset()删除一个数组变量,即使是数字索引,此函数也不会重新对数组索引
示例:
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
unset($arr['php']);
print_r($arr);
?>
Result:
Array
(
[zzu] => www. zzu.edu.cn
[mysql] => www.mysql.com
[apache] => www.apache.org
)
增加和删除数组元素
<?php
$arr = array(‘zzu','php','MySQL','javascript');
unset($arr[1]);
print_r($arr);
?>
Result:
Array
(
[0] => zzu
[2] => MySQL
[3] => javascript
)

上例中索引保持不变
增加和删除数组元素

array_push()
array_push()函数将variable增加到target_array的末尾,成功时返回TRUE,否则返回
FALSE.
这个和栈的入栈相似.可以为此函数传递多个变量作为输入参数,同时向数组压入多个变量
(元素).
<?php
$arr = array(‘zzu','php','MySQL','javascript');
array_push($arr,'html','css');
print_r($arr);
?>
Result:
Array
(
[0] => zzu
[1] => php
[2] => MySQL
[3] => javascript
[4] => html
[5] => css
)
增加和删除数组元素

注: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用
函数的额外负担.
注: 如果第一个参数不是数组,array_push() 将发出一条警告.这和 $var[] 的行为不同,后者
会新建一个数组.

array_unshift ( array &$array, mixed $var [, mixed $...] )
array_unshift() 将传入的单元插入到 array 数组的开头.注意单元是作为整体被插入的,因
此传入单元将保持同样的顺序.所有的数值键名将修改为从零开始重新计数,所有的文字键
名保持不变.函数的返回值是 array 数组新的单元数目.
<?php
$arr = array(
0 => 'www.php.net',
1 => 'www.mysql.com',
2 => 'www.apache.org'
);
$zzu = 'www. zzu.edu.cn';
$num = array_unshift($arr,$ zzu);
echo "新的数组的长度是:".$num;
echo "\r\n\r\n";
print_r($arr);
?>
增加和删除数组元素
Result:
新的数组的长度是:4
Array
(
[0] => www. zzu.edu.cn
[1] => www.php.net
[2] => www.mysql.com
[3] => www.apache.org
)

array_pop()
array_pop()函数返回target_array的最后一个元素(出栈),并在结束后重置数组的指针.
增加和删除数组元素
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
echo array_pop($arr);
echo "\n\n";
print_r($arr);
?>
Result:
www.apache.org
Array
(
[zzu] => www. zzu.edu.cn
[php] => www.php.net
[mysql] => www.mysql.com
)
增加和删除数组元素

array_shift ( array &$array )
array_shift() 将 array 的第一个单元移出并作为结果返回(出列),将 array 的长度减一并将
所有其它单元向前移动一位.所有的数字键名将改为从零开始计数,文字键名将不变.如果
array 为空(或者不是数组),则返回 NULL.使用本函数后会重置数组指针.
// Key为数字
<?php
$arr = array(‘zzu','php','MySQL','javascript','html','css');
echo array_shift($arr);
echo "\n\n";
print_r($arr);
?>
Result:
zzu
Array
(
[0] => php
[1] => MySQL
[2] => javascript
[3] => html
[4] => css
)
增加和删除数组元素

键值为字符串
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
echo array_shift($arr);
echo "\r\n\r\n";
print_r($arr);
?>
Result:
www. zzu.ed.cn
Array
(
[php] => www.php.net
[mysql] => www.mysql.com
[apache] => www.apache.org
)
增加和删除数组元素

array array_pad ( array $input, int $pad_size, mixed $pad_value )
array_pad()函数会修改target数组,将其大小增加到length指定的长度.这是通过在数组中
填充由pad_value指定的值实现的.如果pad_value是正数,将填充到数组的右侧(后面);
如果为负,则将填充到左侧(前面).如果length等于或小于当前大小,将不做任何操作.示例
如下:
<?php
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, "noop");
// not padded
?>
遍历数组

count ( mixed var [, int mode] )
计算数组中的单元数目或对象中的属性个数,返回 var 中的单元数目,通常是一个 array,任
何其它类型都只有一个单元.
如果可选的 mode 参数设为 1,count() 将递归地对数组计数.对计算多维数组的所有单元
尤其有用.mode 的默认值是 0
<?php
$arr = array(‘zzu','php','MySQL','javascript','html','css');
echo "数组长度:".count($arr);
?>
Result:
数组长度:6
遍历数组
count ( mixed var [, int mode] )

示例:带参数mode
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
$array[] = ‘Zzu';
$array[] = $arr;//数组的值又是一个数组
$array[] = 'MySQL';
$array[] = 'javascript';
$array[] = 'html';
$array[] = 'css';
echo "不递归:".count($array)."\n";
echo "递归:".count($array,1);
?>
Result:
不递归:6
递归:10

注意:sizeof ( )函数是count( )别名。它们的功能是一样的。
遍历数组

我们随即来利用count来遍历一下数组
<?php
$arr = array(‘zzu','php','MySQL','javascript','html','css');
for($i=0;$i<count($arr);$i++){//一定要记得数组索引是从0开始的
echo "第".$i."个元素是:".$arr[$i]."\n";
}
?>
Result:
第0个元素是:zzu
第1个元素是:php
第2个元素是:MySQL
第3个元素是:javascript
第4个元素是:html
第5个元素是:css
• 很显然这种遍历只能适用与数字索引,并且是规则的数字索引
那么想字符索引那些如何遍历呢?
遍历数组

current( )
语法形式:mixed current (arrary target_array)
current( )函数返回target_array 数组当前指针位置的数组值。如果内部指针指向超出了
单元列表的末端,current() 返回 FALSE。

next ()
语法形式:mixed next (arrary input_array)
next( )函数返回input_array 中紧接这放在当前数组指针的下一个位置的数组值。

注意: current ( )与next ()函数不同,current ( )不移动指针,而next ( )函数需要移动指
针。
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
while($value = current($arr)){
echo $value."\n";
next($arr);
}
?>
遍历数组
Result:
www.phpfans.net
www.php.net
www.mysql.com
www.apache.org

补充知识:list -- 把数组中的值赋给一些变量

void list ( mixed ...)
List ( )函数与array ( )函数类似,只是它可以在一次操作中从一个数组内提取多个值,
同时为多个变量赋值。
<?php
$info = array ('coffee', 'brown', 'caffeine');
// Listing all the variables
list ($drink, $color, $power) = $info;
print "$drink is $color and $power makes it special.\n";
?>
Result:
coffee is brown and caffeine makes it special.
遍历数组



each()
语法形式: array each (array input_array)
函数返回input_array的当前键/值对,并将指针推进一个位置. 键值对被返回为四个单元的
数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value
包含有数据。如果执行each()前指针位于数组末尾,则返回FALSE.
遍历数组

each ( )举例
<?php
$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);
print_r($bar);
?>
$bar 现在包含有如下的键/值对:
Array
{
[1] => bob
[value] => bob
[0] => 0
[key] => 0
}
遍历数组

each()举例
<?php
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
print_r($bar);
?>
$bar 现在包含有如下的键/值对:
Array
{
[1] => Bob
[value] => Bob
[0] => Robert
[key] => Robert }
遍历数组

each() 经常和 list() 结合使用来遍历数组 。在执行 each() 之后,数组指针将停留在数组
中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,
必须使用 reset()。
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
while (list($key, $val) = each($arr)) {
echo "$key => $val\n";
}
?>
Result:
zzu=> www. zzu.edu.cn
php => www.php.net
mysql => www.mysql.com
apache => www.apache.org
遍历数组

我们最常用的遍历数组的函数是foreach
foreach 控制结构是专门用于数组的.它提供了一个简单的方法来遍历数组.
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种格式遍历给定的 array_expression 数组.每次循环中,当前单元的值被赋给 $value
并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元).
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
foreach($arr as $value){
echo $value."\n";
}
?>
遍历数组
Result:
www. zzu.edu.cn
www.php.net
www.mysql.com
www.apache.org
<?php
$arr = array(
‘zzu' => 'www. zzu.edu.cn',
'php' => 'www.php.net',
'mysql' => 'www.mysql.com',
'apache' => 'www.apache.org'
);
foreach($arr as $key => $value){
echo $key."=>".$value."\n";
}
?>
遍历数组
Result:
zzu=>www.zzu.edu.cn
php=>www.php.net
mysql=>www.mysql.com
apache=>www.apache.org
有用函数

array array_merge ( array array1 [, array array2 [, array ...]] )
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的
后面.返回作为结果的数组.
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数
组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.
<?php
$array1 = array ("color" => "red", 2, 4);
$array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge ($array1, $array2);
print_r($result);
?>
Result:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
有用函数

array array_merge ( array array1 [, array array2 [, array ...]] )
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的
后面.返回作为结果的数组.
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数
组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.
<?php
$array1 = array(1 => "php爱好者站");
$array2 = array(3 => 'www. zzu.edu.cnt');
$result = array_merge($array1, $array2);
print_r($result);
?>
Result:
Array
(
[0] => php爱好者站
[1] =>www.zzu.edu.cn
)
有用函数

array array_merge ( array array1 [, array array2 [, array ...]] )
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后
面.返回作为结果的数组.
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组
包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面.

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引.
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
Array
(
[0] => data
)
注意:数字键名将会被重新编号
有用函数

如果你想完全保留原有数组并只想新的数组附加到后面,用 + 运算符:
<?php
$array1 = array(1 => "php爱好者站");
$array2 = array(3 => 'www. zzu.edu.cn');
$result = $array1 + $array2;
print_r($result);
?>
Result:
Array
(
[1] => php爱好者站
[3] => www. zzu.edu.cn
)
有用函数

array_merge_recursive()

array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合
并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键
已经存在于结果数组中时会以怎样的处理方式.array_merge()会覆盖前面存在的
键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个
值合并在一起,形成一个新的数组,并以现有的键作为数组名.示例如下:
<?php
$array1 = array('welcome' =>'欢迎光临', 'name' => "phpfans");
$array2 = array('name' => 'php爱好者站', 'url' => 'www.phpfans.net');
$result1 = array_merge($array1, $array2);
print_r($result1);
echo "\n";
$result2 = array_merge_recursive($array1, $array2);
print_r($result2);
?>
有用函数
Result:
Array
(
[welcome] => 欢迎光临
[name] => php爱好者站
[url] => www.phpfans.net
)
Array
(
[welcome] => 欢迎光临
[name] => Array
(
[0] => phpfans
[1] => php爱好者站
)
[url] => www.phpfans.net
)
有用函数

说了数组的合并,如何将数组的所有元素合并成一个字符串呢?php中提供了方便的函数
implode

implode(string glue, array pieces)
本函数将数组的内容组合成一个字符串,参数 glue 是字之间的分隔符号.
<?php
$arr['name'] = 'php爱好者站';
$arr['teach'] = '系列教程';
$arr['url'] = 'www.phpfans.net';
$str = implode(',',$arr);
echo $str;
?>
Result:
php爱好者站,系列教程,www.phpfans.net
有用函数

array_slice ( array $array, int $offset [, int $length] )

array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列.

如果 offset 非负,则序列将从 array 中的此偏移量开始.如果 offset 为负,则序列将从
array 中距离末端这么远的地方开始.
<?php
$arr = array(
'www.zzu.edu.cn',
'www.php.net',
'www.mysql.com',
'www.apache.org'
);
$array1 = array_slice($arr,0,2);
$array2 = array_slice($arr,-3,2);
print_r($array1);
echo "\n";
print_r($array2);
echo "\n";
有用函数
Result:
Array
(
[0] => www.phpfans.net
[1] => www.php.net
)
Array
(
[0] => www.php.net
[1] => www.mysql.com
)
有用函数

array array_splice ( array &$input, int $offset [, int $length [, array $
replacement ]] )

array_splice() 把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了
replacement 参数,则用 replacement 数组中的单元取代.返回一个包含有被代替后的数
组.注意 input 中的数字键名不被保留.

如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除.如果 offset 为负,则从
input 末尾倒数该值指定的偏移量开始移除,并以数组的形式返回所删除的元素。

如果省略 length,则移除数组中从 offset 到结尾的所有部分.如果指定了 length 并且为正
值,则移除这么多单元.如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数
length 为止中间所有的单元,并以数组的形式返回所删除的元素。
有用函数
<?php
$arr = array(
‘www.zzu.edu.cn’,
‘www.php.net’,
‘www.mysql.com’,
‘www.apache.org’
);
$arr1 = $arr;
$array1 = array_splice($arr1,2);
print_r($arr1);
echo “\n”;
print_r($array1);
echo “\n”;
$arr2 = $arr;
array_splice($arr2,2,1);
print_r($arr2);
echo “\n”;
$arr3 = $arr;
$arr_replacement = array(‘php学习','php官方');
array_splice($arr3,2,1,$arr_replacement);
print_r($arr3);
?>
有用函数
Array
(
[0] => www.zzu.edu.cnt
[1] => www.php.net
)
Array
(
[0] => www.mysql.com
[1] => www.apache.org
)
Array
(
[0] => www.zzu.edu.cn
[1] => www.php.net
[2] => www.apache.org
)
Array
(
[0] => www. zzu.edu.cn
[1] => www.php.net
[2] => php爱好者
[3] => php官方
[4] => www.apache.org
)
有用函数

array_intersect ( array $array1, array $array2 [, array $ ...] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参
数数组中的值.注意键名保留不变。
<?php
$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);
?>
这使得 $result 成为:
Array
(
[a] => green
[0] => red
)
注: 两个单元仅在 (string) $elem1 === (string) $elem2 时被认为是相同的。
也就是说,当字符串的表达是一样的时候。
有用函数

array array_intersect_assoc ( array array1, array array2 [, array ...])

array_intersect_assoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所
有其它参数数组中的值。注意和 array__intersect() 不同的是键名也用于比较。
<?php
$array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array ("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
/* $result_array will look like:
Array
(
[a] => green
)
*/
?>
上面例子中可以看到只有键值对 “a” => “green” 在两个数组中都存在从而被返回。
值 "red" 没有被返回是因为在 $array1 中它的键名是 0 而在 $array2 中 "red" 的键名是 1。
有用函数
排序函数,我们也知道一些排序算法,如冒泡排序、堆排序、希尔排序和快速排序.排序在
编程中经常用到.PHP提供了能以多种不同方式对数组排序的大量有用的函数,从而简化了
这个过程.这也体现了php是非常方便的.下面将详细结束这些函数

Void sort ( array &$array [, int $sort_flags] )
sort()函数会对target_array进行排序,各元素按值由低到高的顺序排列.注意,它并不是返
回排序后的数组.相反,它只是对当前数组排序,不论结果如何都不返回任何值.
注意: 本函数为 array 中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序.

<?php
$arr = array(5,2,6,8,4,1);
sort($arr);
print_r($arr);
?>
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 5
[4] => 6
[5] => 8
)

可以看到键值关联不再保持.
有用函数
asort ( array &$array [, int $sort_flags] )
本函数对数组进行排序,数组的索引保持和单元的关联.主要用于对那些单元顺序很重要的
结合数组进行排序.

<?php
$arr = array(5,2,6,8,4,1);
asort($arr);
print_r($arr);
?>
Array
(
[5] => 1
[1] => 2
[4] => 4
[0] => 5
[2] => 6
[3] => 8
)

可以看到键值保持不变.
有用函数

rsort ( array &$array [, int $sort_flags] )
rsort()函数与sort()相同,只是它以相反的顺序(降序)对数组元素排序.示例如下:
<?php
$arr = array(5,2,6,8,4,1);
rsort($arr);
print_r($arr);
?>
Array
(
[0] => 8
[1] => 6
[2] => 5
[3] => 4
[4] => 2
[5] => 1
)
有用函数

arsort ( array &$array [, int $sort_flags] )
arsort()函数与asort()相同,只是它以相反的顺序(降序)对数组元素排序.示例如下:
<?php
$arr = array(5,2,6,8,4,1);
arsort($arr);
print_r($arr);
?>
Array
(
[3] => 8
[2] => 6
[0] => 5
[4] => 4
[1] => 2
[5] => 1
)
有用函数

Isset
bool isset ( mixed var [, mixed var [, ...]])

如果 var 存在则返回 TRUE,否则返回 FALSE;
isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。

<?php
$a = array ('test' => 1, 'hello' => NULL);
var_dump( isset ($a['test']) );
var_dump( isset ($a['foo']) );
var_dump( isset ($a['hello']) );
?>
// TRUE
// FALSE
// FALSE