首页 > 作文

数组初始

更新时间:2023-04-08 02:47:58 阅读: 评论:0

空数组

    $arr=array();    var_dump($arr);

gettype():得到变量的类型

    echo gettype($arr);//array(0) {}

通过is_array():检测变量是否为数组

    var_dump(is_array($arr));//arraybool(true)

如果数组下标重复,后面的覆盖前面的值

    $arr=array(      'a',      0=>'b'    );    var_dump($arr);    //array(1) {    //[0]=>    //  string(1) "b"    //}

如果新添加元素没有指定下标,它的下标为已有下标最大值加1(已有下标不全为负数)

    $arr=array(    'a','b','c',      5=>'d',      19=>'e',      'f'    );    //var_dump($arr);    //array(6) {    //    [0]=>    //  string(1) "a"    //    [1]=>    //  string(1) "b"    //    [2]=>    //  string(1) "c"    //    [5]=>    //  string(1) "d"    //    [19]=>    //  string(1) "e"    //    [20]=>    //  string(1) "f"    //}

如果已有下标都为负数,那么新添加元素的下标从0开始

    $arr=array(      -12=>'a',      -43=>'b',      'c'    );    var_dump($arr);    //array(3) {    //    [-12]=>    //  string(1) "a"    //    [-43]=>    //  string(1) "b"    //    [0]=>    //  string(1) "c"    //}

动态创建下标连续的索引数组

    $arr1[]=12;    $arr1[]=45678.9;    $arr1[]=true;    print_r($arr1);    //array    //(    //    [0] => 12    //    [1] => 45678.9    //    [2] => 1    //)

快速创建下标连续的索引数组

    $arr=range(1,10);    print_r($arr);    //array    //(    //    [0] => 1    //    [1] => 2    //    [2] => 3    //    [3] => 4    //    [4] => 5    //    [5] => 6    //    [6] => 7    //    [7] => 8    //    [8] => 9    //    [9] => 10    //)

手动指定步长的数组

    $arr=range(1,10,2);    print_r($arr);    //array    //(    //    [0] => 1    //    [1] => 3    //    [2] => 5    //    [3] => 7    //    [4] => 9    //)    $arr=range('a','z');//97~122    print_r($arr);

通过compact创建数组的时候,只能写已经存在的变量的名称,不需要加$

    $a=12;    $b=fal;    $c=null;    $urinfo3=compact('a','b','c');    print_r($urinfo3);    //array    //(    //    [a] => 12    //    [b] =>     //    [c] =>     //)

定义常量数组
const在5.6之后可以定义常量

    const arr2=[      'a'=>'aa',      'b'=>'bb'    ];    print_r(arr2);

通过define()定义常量数组

    define('custom_upload_errors',[      'ext_error'=>'上传文件扩展名不符合规范',      'maxsize_error'=>'上传文件大小不符合规范'    ]);    print_r(custom_upload_errors);    echo custom_upload_errors['ext_error'];

删除指定元素unt

拓展训练方案
    $arr=['a','b','c'];    unt($arr[0]);    print_r($arr);    //array    //(    //    [1] => b    //    [2] => c    //)

临时转换成数组

    $var=null;//null转化成空数组    $res=(array)$var;    var_dump($res);    array(0) {    }

永久转换成数组,ttype($var,$type)

    $var=123;    ttype($var,'array');    var_dump($var);    array(1) {        [0]=>      int(123)    }

合并数组
如果数组键名相同,只会使用左边数组元素的值

    $arr1=['a','b','c'];    $arr2=['d','e','f'];    $newarr=$arr1+$arr2;    print_r($newarr);    //array    //(    //    [0] => a    //    [1] => b    //[2] => c    //)

== 比较数组的键名和键值是否相同,如果相同返回true,否则返回fal
=== 既要比较键名和键值是否相同,而且顺序也要相同

    $a=[      3=>'a',      '5'=>true    ];    $b=[      5=>1,      '3'=>'a'    ];    $c=[      '3'=为了和平观后感>'a',      '5'=>1    ];    var_dump($a==$b,$a===$b,$a==$c,$a===$c);//true fal true fal

数组运用

通过foreach遍历数组

     $arr=[       5=>'a',       12=>'b',       -123=>'c',       34=>'d'     ];     foreach($arr as $v){       echo $v,"\n";//a b c d     }     foreach($arr as $k=>$v){       echo $k,'--',$v,"\n";    //     5--a    //     12--b    //     -123--c    //     34--d     }

可以通过:和endforeach代替{}

    foreach($arr as $val):      echo $val;    endforeach;

foreach不再改变内部数组指针

    $arr=[0,1,2];    foreach($arr as &$val){      var_dump(current($arr));    }

foreach 通过值遍历时,操作的值为数组的副本

    $arr=[0,1,2];    $ref=&$arr;    //老版本会跳过1    foreach($arr as $val){      echo $val,'<br/>';//0 1 2      unt($arr[1]);    }    var_dump($arr,$ref);    //array(2) {    //    [0]=>    //  int(0)    //  [2]=>    //  int(2)    //}    //array(2) {    //    [0]=>    //  int(0)    //  [2]=>    //  int(2)    //}

foreach通过引用遍历时,有更好的迭代特性
按照引用进行循环的时候,对数组的修改会影响循环

    $arr=['a'];    foreach($arr as &$val){      echo $val,'<br/>';//a b      $arr[1]='b';    }

数组指针相关函数
key($array):得到当前指针所在位置的键名,如果不存在返回null
current($array):得到当前指针所在位置的键值,如果不存在返回fal
next($array):将数组指针向下移动一位,并且返回当前指针所在位置的键值;如果没有,返回fal
prev($array):将数组指针向上移动一位,并且返回当前指针所在位置的键值;如果没有,返回fal
ret($array):将数组指针移动到数组开始,并且返回当前指针所在位置的键值;如果没有,返回fal
end($array):将数组指针移动到数组的末尾,并且返回当前指针所在位置的键值;如果没有,返回fal

    $arr=[      'a','b','c',      35=>'test',      'urname'=>'king',      'age'=>12    ];    print_r($arr);    /*    array    (        [0] => a        [1] => b        [2] => c        [35] => test        [urname] => king        [age] => 12    )    */    echo '当前指针所在位置元素的键名为:',key($arr);//0    echo '当前指针所在位置元素的键值为:',current($arr);//a    echo next($arr);//b    echo '当前指针所在位置元素的键名为:',key($arr);//1    echo '当前指针所在位置元素的键值为:',current($arr);//b        echo next($arr)";//c    echo '当前指针所在位置元素的键名为:',key($arr);//2    echo '当前指针所在位置元素的键值为:',current($arr),"\n";//c        echo prev($arr);//b    echo '当前指针所在位置元素的键名为:',key($arr);//1    echo '当前指针所在位置元素的键值为:',current($arr);//b        echo end($arr);//12    echo '当前指针所在位置元素的键名为:',key($arr);//age    echo '当前指针所在位置元素的键值为:',current($arr);//12    var_dump(next($arr),key($arr),current($arr));//bool(fal) null bool(fal)        echo ret($arr);//a    echo '当前指针所在位置元素的键名为:',key($arr);//0    echo '当前指针所在位置元素的键值为:',current($arr);//a

循环全部输出

    $arr=[        'a','b','c',        35=>'test',        ''=>'aaa'    ];    while(!is_null(key($arr))){       echo '当前指针所在位置的键名为:',key($arr),"\n";       echo '当前指针所在位置的键值为:',current($arr),"\n";       echo "\n";       next($arr);    }

获得扩展名

    $filename='1.txt.php.html';    $res=explode('.',$filename);    print_r($res);    $ext=end($res);//指针移动到最后    echo $ext;

list():将下标连续的从0开始的索引数组赋值给相应的变量

     $arr=['a','b','c'];     list($var1,$var2,$var3)=$arr;     echo $var1,$var2,$var3;//a b c

遍历二维数组

     $arr=[       [1,'king1',12],       [2,'king2',22],       [3,'king3',32]     ];     foreach($arr as list($id,$urname,$age)){       echo $id,'-',$urname,'-',$age,"\n";     }    //1-king1-12    //2-king2-22    //3-king3-32

each($array):得到当前指针所在位置的键值对,返回的是数组,包含4个部分;并且将指针向下移动一位

    $arr=[      'a'=>'aaaa',      'b'=>'bbbb'    ];     $res=each($arr);     print_r($res);    //array    //(    //    [1] => aaaa    //    [value] => aaaa    //[0] => a    //[key] => a    //)

输出当前指针位置的键值

    $arr=[      'a'=>'aaaa',      'b'=>'bbbb'    ];    echo key($arr),'-',current($arr);//a-aaaa

循环数组

    $arr=[      'a'=>'aaaa',      'b'=>'bbbb'    ];    while(list($k,$v)=each($arr)){      echo $k,'--',$v,"\n";    }    //a--aaaa    //b--bbbb

数组中所有键名组成字符串

    $urinfo=[      'urname'=>'king',      'password'=>'123456',      'email'=>'382771946@qq.com'    ];    $keys=join(',',array_keys($urinfo));    print_r($keys);//ure盘打不开name,password,email    //数组中所有键值转为字符串    $vals="'".join("','",array_values($urinfo))."'";    print_r($vals);//'king','123456','382771946@qq.com'    //拼接成sql语句: inrt ur(urname,password,email) values('king','123456','382771946@qq.com')    $sql="inrt ur({$keys}) values({$vals})";    echo $sql;//inrt ur(urname,password,email) values('king','123456','382771946@qq.com')

in_array()

    $allowexts=['jpg','jpeg','png','gif'];    $ext='jpg';    var_dump(in_array($ext,$allowexts));//bool(true)

字符串转数组并乱序

    $string='速,度,快,放,假,了';    $arr=explode(',',$string);    shuffle($arr);    print_r($arr);    //将键名与键值反转    $arr=array_flip($arr);    print_r($arr);    //返回包含随机键名的数组 4个值    $res=array_rand($arr,4);    print_r($res);

字符串转数组,求和

    $sum='10,20,30';    echo array_sum(explode(',',$sum));//60

计算并返回数组的乘积

    $sum='10,20,30';    echo array_product(explode(',',$sum));//6000

截取文件扩展名,并且检测扩展名是否在[‘jpg’,’jpeg’,’gif’,’png’]

    $allowexts=['jpg','jpeg','gif','png'];    $filename='1.txt.php.jpg';    $arr=explode('.',$filename);    $ext=end($arr);    echo $ext;//jpg    var_dump(in_array($ext,$allowexts));//bool(true)

array_push():在最后追加数据
array_pop():删除最后一个,并返回
array_unshift():在前面追加数据
array_shift():删除第一个,并返回

    $arr=['a','b','c'];    $res=array_pop($arr);    echo $res;//c    print_r($arr);    //array    //(    //    [0] => a    //    [1] => b    //)    $arr=['a','b','c'];    array_push($arr,'hello world',123);    print_r($arr);    //array    /空间几何体的三视图/(    //    [0] => a    //    [1] => b    //[2] => c    //[3] => hello world    //[4] => 123    //)    $arr=['a','b','c'];    echo array_shift($arr);//a    print_r($arr);    //array    //(    //    [0] => b    //    [1] => c    //)    $arr=['a','b','c'];    array_unshift($arr,'d');    print_r($arr);    //array    //(    //    [0] => d    //    [1] => a    //[2] => b    //[3] => c    //)

判断文件类型是否合法

    $filename='1.txt.jpg';    $allowexts=['jpg','jpeg','gif','png'];    $arr=explode('.',$filename);    $ext=array_pop($arr);    if(in_array($ext,$allowexts)){      echo '文件类型合法';    }el{      echo '非法文件类型';    }

快速生成字符串

    $str1=join('',range(0,9));//string(10) "0123456789"    $str2=join('',range('a','z'));//string(26) "abcdefghijklmnopqrstuvwxyz"    $str3=jo锻炼的近义词in('',range('a','z'));//string(26) "abcdefghijklmnopqrstuvwxyz"

生成四位数随机验证码

    $arr1=range(0,9);    $arr2=range('a','z');    $arr3=range('a','z');    $newarr=array_merge($arr1,$arr2,$arr3);        $res=array_rand(array_flip($newarr),4);    echo join('',$res);

检测文件是否存在

    $filename="msg.txt";    $msgs=[];    if(file_exists($filename)){      //读取文件中的内容      $string=file_get_contents($filename);      if(strlen($string)>0){        $msgs=unrialize($string);      }    }

留言功能

    //检测用户是否点击了提交按钮    if(ist($_post['pubmsg'])){      $urname=$_post['urname'];      $title=strip_tags($_post['title']);      $content=strip_tags($_post['content']);      $time=time();      //将其组成关联数组      $data=compact('urname','title','content','time');      array_push($msgs,$data);      $msgs=rialize($msgs);      if(file_put_contents($filename,$msgs)){        echo "<script>alert('留言成功!');location.href='22-msg.php';</script>";      }el{        echo "<script>alert('留言失败!');location.href='22-msg.php';</script>";      }    }

count()得到数组中元素的个数

    $arr=range('a','z');    echo count($arr);//26     $var=123;     echo count($var),'<br/>';//1     $var=null;     echo count($var),'<br/>';//0

for循环只能遍历下标连续的索引数组

    $arr=[        5=>'a',        -12=>'b',        345=>'c'    ];//不行    $arr=[        'urname'=>'king',        'age'=>12    ];//不行     for($i=0,$count=count($arr)-1;$i<=$count;$i++){       echo $arr[$i],'<br/>';     }

html 与 php 混编
if举例

    <?php if(true){ ?>    <span>成功</span>    <?php }el{ ?>    <span>失败</span>    <?php } ?>

本文发布于:2023-04-08 02:47:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/fe6451f92b20fa7439501fe8b639fb2f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:数组初始.doc

本文 PDF 下载地址:数组初始.pdf

标签:数组   指针   所在位置   键值
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图