Maison >développement back-end >tutoriel php >php 数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,2)//1 3 5 7 9 第三个参数设置参数之间的步幅
range语法:
range(first,second,step)//创建并返回一个包含指定范围的元素的数组
first:必需。规定数组元素的最小值。
second:必需。规定数组元素的最大值。
step:可选。规定元素之间的步进制。默认是 1。
3 使用循环访问数组
for循环访问数组
for($i=0;i echo $product[i]." ";
}
foreach访问数组
foreach($product as $pro){
echo $pro."";
}
4 关联数组
$prices= array('tires'=>100,'oil'=>200,'spark'=>30);
访问数组 $prices['tires'] ,$prices['oil'],$prices['spark']
foreach访问数组
foreach ($price as $key =>$value){
echo $key.'-'.$value.'
';
}
each()结构打印数组
while($element = each($price)){
echo $element['key'].'-'.$element['value'].'
';
}
list()和each()打印数组
while(list($product,$pri)=each(prices)){
echo "$product - $pri
";
}
each()语法
each(array)// 函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把内部指针向前移动。返回的数组中包括的四个元素:键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。
如果内部指针越过了数组范围,本函数将返回 FALSE。
array: 必需。规定要使用的数组
list()语法:
list(var1,var2...)//用数组中的元素为一组变量赋值。 list实际上一种结构,不是函数,和array类似
var1 必需。第一个需要赋值的变量。
var2 可选。可以有多个变量。
5 多维数组
$products=array(
array('Tire','tires','100'),
array('Oil','oil','300'),
array('Spak','Speak','100'),
)
循环多维数组
foreach($products as $value){
foreach($value as $va){
echo $va.'';
}
}
6数组的排序
sort(array,sorttype)//按升序对给定数组的值排序
array:必需。输入的数组。
sorttype:可选。规定如何排列数组的值。可能的值:
•SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
•SORT_NUMERIC - 把值作为数字来处理
•SORT_STRING - 把值作为字符串来处理
•SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置*。
示例:
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
sort($my_array);
print_r($my_array);
?>
输出:
Array
(
[0] => Cat
[1] => Dog
[2] => Horse
)
asort(array,sorttype)//对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序
array: 必需。输入的数组。
sorttype:可选。规定如何排列数组的值。可能的值:
•SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
•SORT_NUMERIC - 把值作为数字来处理
•SORT_STRING - 把值作为字符串来处理
•SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置*。
示例:
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
asort($my_array);
print_r($my_array);
?>
输出:
Array
(
[b] => Cat
[a] => Dog
[c] => Horse
)
ksort(array,sorttype)//按照键名对数组排序,为数组值保留原来的键
array: 必需。规定要排序的数组。
sorttype:可选。规定如何排列数组的值。可能的值:
•SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
•SORT_NUMERIC - 把值作为数字来处理
•SORT_STRING - 把值作为字符串来处理
•SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置*。
示例:
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
ksort($my_array);
print_r($my_array);
?>
输出:
Array
(
[a] => Dog
[b] => Cat
[c] => Horse
)
反向排序: rsort(),arsort(),krsort()//用于反向排序(降序排列)
usort(array,sorttype)//使用用户自定义的函数对数组排序。
array:必需。规定要排序的数组。
sorttype:必需。用户自定义的函数。
函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:
•如果 a = b, 返回 0
•如果 a > b, 返回 1
•如果 a 示例:
function my_sort($a, $b)
{
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$arr = array("Peter", "glenn","Cleveland","peter","cleveland", "Glenn");
usort($arr, "my_sort");
print_r ($arr);
?>
输出结果:
Array
(
[0] => peter
[1] => glenn
[2] => cleveland
[3] => Peter
[4] => Glenn
[5] => Cleveland
)