PHP数组

range函数

$numbers=range(1,10,2);
//建立一个110的数组,步长为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""; 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""; } echo"
oil tree tag wheel total address
$line[1] $line[3] $line[5] $line[7] $line[9] $line[11]
"
;

其他常用的数组操作函数

//在指针前移一个位置之前返回当前元素
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_walk

对数组中的每一个元素都应用自定义的函数进行处理,可以实现很多功能

            $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);
该函数包含三个参数,第三个参数可选,第一个参数为要操作的数组,第二个参数为自定义的处理函数,第三个参数为参数传递,做一些特殊处理。

将数组转换成标量变量extract()

                //经过这样转换就可以直接访问键进行输出
                $arr4=array('tag' => 30,'here' => 50,'there' => 35);
                extract($arr4);
                echo "$tag  $here $there";

函数原型如下

extract(array [, int extract_type] [, string prefix]);
  • 第一个参数为操作的数组,必选
  • 第二个参数将告诉函数如何处理冲突,可能存在一个和数组关键字同名的变量,默认操作覆盖已有变量,最常用的是EXTR_OVERWRITE(默认值)和EXTR_PREFIT_ALL在所有变量名称之前添加prefix前缀,必须提供prefix参数
  • 第三个参数,给你定义的标量添加一个前缀,避免冲突’
                //实现的功能和上面的代码一直,就是输出相应的值
                $arr4=array('tag' => 30,'here' => 50,'there' => 35);
                extract($arr4,EXTR_PREFIX_ALL,'my');
                echo "$my_tag  $my_here $my_there";

你可能感兴趣的:(php,PHP)