您的位置:首页 > 编程语言 > PHP开发

PHP数组元素操作实例

2014-02-26 14:06 465 查看
在PHP应用中,数组是用得最广泛的数据结构了。基本可以这么说,熟练掌握数组你就可以熟练掌握PHP的大部分了。下面将PHP的数组操作进行汇总介绍下,或许有你不懂或不怎么了解的数组操作。

将数组的内部指针倒回一位:

01
/**
02
*
将数组的内部指针倒回一位
03
*
@param array &$arr
04
*
@return mixed 返回前一个单元的值,当没有更多单元时返回 FALSE
05
*
如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE
06
*
要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数
07
*/
08
mixed
prev(
array
&
$arr
);
09
10
<?php
11
$transport
=
array
(
'foot'
,
'bike'
,
'car'
,
'plane'
);
12
$mode
=
current(
$transport
);
//
$mode ='foot';
13
$mode
=
next(
$transport
);   
//
$mode ='bike';
14
$mode
=
next(
$transport
);   
//
$mode ='car';
15
$mode
=
prev(
$transport
);   
//
$mode ='bike';
16
$mode
=
end
(
$transport
);
//
$mode ='plane';
17
$mode
=
reset(
$transport
)
;
//$mode
='foot';
18
19
?>
把数组中的单元转换为变量:

1
array
(
"key"
=>
"value"
);建立数组
2
//显示数组
3
print_r(
$array
);
4
//使用compact()函数新建数组,并把参数做为新数组的单元;
5
$newArray
=
compact(
"red"
,
"green"
,
"yellow"
,
"blue"
,
"array"
);
6
//使用extract()函数把数组中的单元转换为变量
7
extract(
$exArray
);
8
echo
"$key1
$key2 $key3 $key4 $key5"
;
检查值、键:

1
array_key_exists
(
$key
,
$array
);
//检查数组键
2
in_array(
$value
,
$array
);
//检查值于数组
获取值:

1
//使用array_values()取得数组的值
2
$carValues
=
array_values
(
$car
);
3
//取出数组的键名
4
$twoKeys
=
array_keys
(
$two
);
5
key(
$array
);
//输出当前单元的键名
6
//数组定义后,使用current()取得当前单元的值
7
$red
=
current(
$array
);
8
list(
$red
,
$green
)
=
$array
;
//把数组中的值赋与变量,$array
=array("红色","绿色");
9
each(
$two
);
//返回数组中当前单元的键和值
遍历数组:

1
foreach
(
$two
as
$subArray
);
//遍历数组
2
while
(list(
$key
,
$value
)
=each(
$array
)){
3
echo
"$key=>$value,"
;
//使用each遍历数组
4
}
填充数组:

01
//向左、右填充数组
02
array_pad
(
$array
,+3,
"shuzhi"
);
//2参数为正从左往右填充,数值大于单元数时才填充
03
$array1
=
array_fill
(5,5,
"test"
);
//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元
04
//填充数组键名
05
$keys
=
array
(
'string'
,
5,10,
'str'
);
06
$array3
=
array_fill_keys(
$keys
,
"数组值"
);
07
//使用array_filp()函数交换键名与值
08
$speed
=
array_flip
(
$speed
);
09
//使用array_splice()函数替换第6个单元的值为7
10
$output
=
array_splice
(
$input
,6,0,7);
11
//使用array_splice()函数删除数组单元,只保留前5个单元
12
$output
=
array_splice
(
$input
,5);
13
$array1
=
range(10,100,10);
//使用range()函数的第三个参数,设置单元之间的步进值
排序:

01
shuffle(
$array
);
//将数组顺序打乱
02
//使用array_multisort()对三个数组排序
03
array_multisort
(
$sort1
,
$sort2
,
$sort3
);
04
//把这个数组进行排序,并保持索引关系
05
asort(
$array
);
06
//把测试数组进行逆向排序,并保持索引关系
07
arsort(
$array
);
08
//使用ksort()对数组按键名排序
09
ksort(
$array
);
10
//使用krsort()函数按键名逆向排序
11
krsort(
$array
);
12
//使用sort()对测试数组进行排序[以键名排列]
13
sort(
$array
);
14
//使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感
15
natsort(
$array
);
16
//使用natcasesort()函数排序[自然排序]但是忽略数值大小写
17
natcasesort(
$array
);
18
//使用array_reverse()函数排序,数组单元按相反排列
19
$newArray
=
array_reverse
(
$array
,TRUE);
//TRUE设时保留原键名
交集、差集:

01
//使用array_diff()计算三个数组的差集[对数组数值比较]
02
$result
=
array_diff
(
$dog1
,
$dog2
,
$dog3
);
03
//使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]
04
$result
=
array_diff_assoc
(
$dog1
,
$dog2
,
$dog3
);
05
//使用array_diff_key()计算三个数组的差集[比较键名]
06
$result
=
array_diff_key
(
$dog1
,
$dog2
,
$dog3
);
07
//使用array_intersect()计算三个数组的交集[对数组数值比较]
08
$result
=
array_intersect
(
$dog1
,
$dog2
,
$dog3
);
09
//使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]
10
$result
=
array_intersect_assoc
(
$dog1
,
$dog2
,
$dog3
);
11
//使用array_intersect_key()计算三个数组的交集[比较键名]
12
$result
=
array_intersect_key
(
$dog1
,
$dog2
,
$dog3
);
合并数组:


1
//使用array_merge()函数合并数组
2
$result
=
array_merge
(
$array1
,
$array2
,
$array3
,
$array4
,
$array5
);
3
array_rand
(
$input
,10);
//随机取出10个单元
4
count
(
$array
,COUNT_RECURSIVE);
//显示数组单元数目,2参数只可为1或者COUNT_RECURSIVE,有时可遍历多维数组
出入栈:

1
//数组出栈,后进先出,数组最后一个单元弹出
2
array_pop
(
$array
);
3
//数组入栈,将7,8两个数值添加到数组尾部
4
array_push
(
$array
,7,8);
5
//将数组开头单元移出数组
6
array_shift
(
$array
);
7
//将7,8添加入数组开头
8
array_unshift
(
$array
,7,8);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: