$numbers=range(1,10,2);
//建立一个1到10的数组,步长为2
$arr3=array('tag' => 30,'here' => 50,'there' => 35);
//最简单的访问方式
echo $arr3['tag'];
//循环便利关联数组
foreach($arr3 as $key => $value){
echo $key." - ".$value."
";
}
reset($arr3);
while($element = each($arr3)){
echo $element['key']." - ".$element['value']."
";
}
reset($arr3);
while(list($name,$price) = each($arr3)){
echo $name." - ".$price."
";
}
//多维数组和多维关联数组的定义和遍历
$test=array(
array('this','thiss',100),
array('that','thatt',200),
array('there','theree',300)
);
for($row=0;$row<3;$row++){
for($column=0;$column<3;$column++){
echo '|'.$test[$row][$column];
}
echo "
";
}
$test2=array(
array(
'name'=>'jack',
'age'=>'18',
'sex'=>'man'
),
array(
'name'=>'jack2',
'age'=>'182',
'sex'=>'man2'
),
array(
'name'=>'jack3',
'age'=>'183',
'sex'=>'man3'
)
);
for($row=0;$row<3;$row++){
echo '|'.$test2[$row]['name'].'|'.$test2[$row]['age'].'|'.$test2[$row]['sex']."
";
}
echo "
";
reset($test2);
for($row=0;$row<3;$row++){
while(list($key,$value)=each($test2[$row])){
echo '|'.$value."*";
}
echo "
";
}
//如果是字母会按照字母顺序排序,大写字母排序在小写字母之后
//如果是数字,按照从小到大排序
$arr5=array("c","z","a");
$arr5=array(10,5,3);
sort($arr5);
$arr4=array('tag' => 30,'here' => 50,'there' => 35);
//对于关联数组,按照值排序,升序
asort($arr4);
//按照键进行排序,升序
ksort($arr4);
//对应上面的排序,都有一个相反的排序方法
sort--》rsort降序排序
asort--》arsort
ksort--》krsort
//多维数组的排序
$test=array(
array('this','c',800),
array('that','d',200),
array('there','a',300)
);
//按照价格也就是第三个参数进行排序,升序
function compare($x,$y){
if($x[2]==$y[2]){
return 0;
}else if($x[2]<$y[2]){
return -1;
}else{
return 1;
}
}
usort($test,"compare");
//shuffle函数,随机排序函数
shuffle($arr5);
//反序一个数组,返回一个内容与参数数组相同,但是顺序相反的数组。
array_reverse($arr5);
@$fp=fopen("$DOCUMENT/order.txt","rb");
//file函数将文件中每一行作为数组的一个元素
$order =file("$DOCUMENT/order.txt");
//count函数用来统计数组的长度
$number_order=count($order);
if($number_order==0){
echo "no order !!!";
}
for($i=0;$i<$number_order;$i++){
echo $order[$i]."
";
}
//按照表格输出,每一行还可以进行分割
//文件中的数据样式
//oil 0 tree 4 tag 2 wheel 2 total 44 地址 china
if($number_order==0){
echo "no order !!!";
}
echo "\n";
echo "oil
tree
tag
wheel
total
address ";
for($i=0;$i<$number_order;$i++){
//explode分割函数,将按照\t分割第二个参数的字符串
$line=explode("\t",$order[$i]);
//intval将分割的数值型字符串转为数字,例如“321”转为321
$line[1]=intval($line[1]);
$line[3]=intval($line[3]);
$line[5]=intval($line[5]);
$line[7]=intval($line[7]);
$line[9]=intval($line[9]);
echo "
$line[1]
$line[3]
$line[5]
$line[7]
$line[9]
$line[11]
";
}
echo "
" ;
//在指针前移一个位置之前返回当前元素
each();
//返回当前指针指向的元素
current();
//将数组指针重置,指向第一个元素,返回第一个元素
reset();
//将数组指针指向最后一个元素,返回最后一个元素
end();
//将指针前移一个位置,并且返回移动之后的元素
next();
//和current函数一致,返回当前元素
pos();
//将指针回移一个位置,返回新元素
prev();
//返回数组中元素的个数
count();
//返回数组中元素的个数
sizeof();
//对数组中每个关键字出现的次数进行统计
array_count_values();
$array=array(4,5,3,2,6,8,2,1,2,1,3,1);
$ac=array_count_values($array);
foreach($ac as $key => $value){
echo $key."-----"."$value"."
";
}
4-----1
5-----1
3-----2
2-----3
6-----1
8-----1
1-----3
对数组中的每一个元素都应用自定义的函数进行处理,可以实现很多功能
$array=array(4,5,3,2,6,8,2,1,2,1,3,1);
function my_print($value){
echo $value."
";
}
array_walk($array,'my_print');
walk_array(value,key,userdata);
该函数包含三个参数,第三个参数可选,第一个参数为要操作的数组,第二个参数为自定义的处理函数,第三个参数为参数传递,做一些特殊处理。
//经过这样转换就可以直接访问键进行输出
$arr4=array('tag' => 30,'here' => 50,'there' => 35);
extract($arr4);
echo "$tag $here $there";
函数原型如下
extract(array [, int extract_type] [, string prefix]);
//实现的功能和上面的代码一直,就是输出相应的值
$arr4=array('tag' => 30,'here' => 50,'there' => 35);
extract($arr4,EXTR_PREFIX_ALL,'my');
echo "$my_tag $my_here $my_there";