加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

§7.PHP数组

发布时间:2022-10-26 15:01:16 所属栏目:PHP教程 来源:互联网
导读: 1. 概念
数组实际上是一个有序映射的集合,映射是一种把values关联keys的类型,值与键组成的键值对称为元素
2. 分类
?按Key类型分组
索引数组 键是整数0,1,2,3,的数组
$array = array(1, 2

1. 概念

数组实际上是一个有序映射的集合,映射是一种把values关联keys的类型,值与键组成的键值对称为元素

2. 分类

?按Key类型分组

索引数组 键是整数0,1,2,3,的数组

$array = array(1, 2, 3, 4);

关联数组 键是整数或字符串

$array = array("M" => "May","J" => "Jax,);

混合数组 键既有字符串,又有整数

$array= array( “foo”=>”bar”, 1=>2);

?按维度分组

一维:$array=array( ‘foo’=>’bar’)

二维:数组中的一个或多个元素是数组

三维:数组中的一个或多个元素是数组且包含一个数组

多维:.....

3. 创建

·方法一:$Arr = array(“hello”, “world”, “haha”)

·方法二:$Arr=[“hello”, “world” , “haha”]

·方法三:$Arr[Key]=”Value”

4. 指针

创建一个数组时,指针默认指向数组的第一个元素

Key($arr) - 获取当前数组元素的键

Current($arr) - 获取当前数组元素的值

prev($arr) - 将数组的内部指针倒回一位

Next($arr) - 将当前的指针后(右)移

Reset($arr) - 将指针复位

5. 遍历Foreach

格式一,取键与值:

Foreach($Array as $Key => $Value){

Expression;

}

格式二,只取值:

Foreach($Array as $Value){

Expression;

}

※ Foreach遍历原数组的副本,并不能更改每个元素的值,若需要该值,则加上“&”

※ 不支持用"@"抑制错误信息

6. 提取List

---list()可以在把数组中的值赋给一组变量,仅用于索引数组,并假定索引从 0 开始,对字符串不起作用

$info = array('coffee', 'brown', 'caffeine');

// 列出所有变量

list($drink, $color, $power) = $info;

echo "$drink is $color and $power makes it special.";

// 列出他们的其中一个

list($drink, , $power) = $info;

echo "$drink has $power. ";

7. 当前值Each

---返回数组中当前的键/值对并将数组指针向前移动一步,键值对被返回为四个单元的数组,键为:0,1,key和 value,0和key 包含有数组单元的键名,1 和 value 包含有数据

$foo = array("Robert" => "Bob", "Seppo" => "Sepi");

$bar = each($foo);

print_r($bar);

Array

(

[1] => Bob

[value] => Bob

[0] => Robert

[key] => Robert

)

8. each和list结合遍历

$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);

while (list($key, $val) = each($fruit)) {

echo "$key => $val\n";

}

以上例程会输出:

a => apple b => banana c => cranberry

9. 常用函数

is_array ( $var )

//检测变量是否是数组

in_array ($needle, $haystack ,[ bool $strict = FALSE ] )

//判断一个元素是否在数组中,返回布尔,如果第三个参数值为TRUE则检查类型是否相同

range ( $start , $end , [number $step = 1 ])

//建立一个包含指定范围单元的数组

array_merge( $array1,array2,array3.... )

//合并一个或多个索引数组,与追加内容无异。若是索引数组,键相同则将后者值覆盖前者,键不同则追加

array_rand($array , $number)

//从数组中取出一个或多个随机的元素,并返回他们的键

shuffle ( &$array )

//打乱一个数组

array_push ( &$array , $value1, [$... ] )

//将一个元素添加到数组的末尾,如果给数组增加一个元素,还不如用 $array[] =

array_pop(&$array)

//弹出数组最后一个单元(出栈)

array_unshift(&$array , $value1 , [$... ] )

//在数组开头插入元素,所有的数值键名将从零开始,所有文字键名保持不变

array_shift(&$array)

//移出数组开头元素并作为结果返回,长度减一,所有其它单元向前移动一位。所有的数字键名从零开始计数,文字键名不变

10.排序函数

sort ( &$array , [int $sort_flags = SORT_REGULAR ])

//按数组值升序重排,只能是索引数组,关联数组被自动转

rsort ( &$array , ...)

//按数组值降序重排,若值完全相等则不定义其顺序,甩至末尾

第三个参数:

SORT_REGULAR - 正常比较单元(不改变类型)

SORT_NUMERIC - 单元被作为数字来比较

SORT_STRING - 单元被作为字符串来比较

SORT_NATURAL - 对每个单元以"自然的顺序"对字符串进行排序(PHP 5.4.0)

asort ( &$array ,[$sort_flags = SORT_REGULAR ] )

按值的升序排列,且键值绑定

arsort ( &$array ,..)

按值的降序排列php指针,且键值绑定

ksort ( &$array, [ $sort_flags = SORT_REGULAR ] )

按键的升序排列,且键值绑定

krsort ( &$array, ...)

按键的降序排列,且键值绑定

?冒泡排序原理

$arr=[16,4,5,6,3,15,11,7];

$n = Count($arr);

For($i=0; $i

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!