php常用函数

数学函数

1.floor函数 :下取整
2.ceil函数:   上取整
    $x = 2.7;
    $y = 3.01;
    echo floor($x);
    echo ceil($y);
3.pow函数:  echo pow(2,3) , '<br/><br/>';
4.sqrt函数:echo sqrt(4) , '<br/><br/>';
5.max:
6.min:
    $x = 6;
    $y = 3.2;
    $z = 1;
    echo max($x,$y,$z) , '<br/><br/>';
    echo min($x,$y,$z) , '<br/><br/>';
7.mtrand(int $min,int $max)
     echo rand() , '<br/><br/>';
    echo mt_rand() , '<br/><br/>';
    $chars = 'abcdefghijlmnopqrstuvwxyz789654321';
    $len = strlen($chars);
    for($i=0;$i<4;$i++){
        $char .= substr($chars,mt_rand(0,$len-1),1);
    }
    echo $char;
8.round(float $val)四舍五入
    $x = 7.238;
    echo round($x) , '<br/><br/>';
    echo round($x,2);
9.number_format(float $num)将以千位分隔符格式化数字
    $x = 7896.827;
    echo number_format($x) , '<br/><br/>'; 7,897
    echo number_format($x,2) , '<br/><br/>'; 7,896.83

10.fmodfloat $x, float $y)将返回出发的浮点数余数
     echo fmod(7.8,3) , '<br/>';
     echo 7.8 % 3 ; //整数余数的操作

字符串函数

01.获取字符串长度 int strlen(string $str)
    $str1 = NULL;
    $str2 = 'AB';
    echo strlen($str1) , strlen($str2);
02.将字符串转小写 string strtolower(string $str)
03.将字符串转大写 string strtoupper(string $str)
04.将句子首字母转大写 string ucfirst(string $str)
05.将每个单词的首字母转大写 string ucwords(string $str)
    $str1 = 'html';
    $str2 = 'PHP';
    echo strtoupper($str1) , strtolower($str2);
    echo '<br/>';
    $str3 = 'this is a test';
    echo ucfirst($str3) , '<br/>' , ucwords($str3);

06.实现字符替换,区分大小写 mixed str_replace()
07.实现字符替换,不区分大小写 mixed str_ireplace()
    $str = 'javascript';
    echo str_ireplace('A', 'b', $str);
08_1.htmlspecialchars 预定义的字符串转换为HTML实体 
    (在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。)
        $str = "A>B,B<C,Tom&John,He said:\"I'm OK\"";
        echo htmlspecialchars($str, ENT_COMPAT); // 只转换双引号
        echo '<hr/>';
        echo htmlspecialchars($str, ENT_QUOTES); // 转换双引号和单引号
        echo '<hr/>';
        //通过str_replace进行转换
        $str1 = str_replace('&', '&amp;', $str); //必须是第一阶梯
        $str2 = str_replace('>', '&gt;', $str1);
        $str2 = str_replace('<', '&lt;', $str2);
        $str2 = str_replace('"', '&quot;', $str2);
        $str2 = str_replace('\'', '&#39;', $str2);
        echo $str2;
08.trim删除字符串首尾空格或其它字符
    $str = "\n\n\t\tABC\t\t";
    echo trim($str);

09.strpos 返回一个字符在另一个字符第一次出现的位置
10.stripos返回一个字符在另一个字符第一次出现的位置(忽略大小写)****位置*****
    $str1 = 'javascript';
    $str2 = 'A';
    var_dump(stripos($str1, $str2)); 
    //字符串从0开始编号,如果没有出现,则返回FALSE。

11.strrpos 返回一个字符串在另一个字符串最后出现的位置
12.strripos返回一个字符串在另一个字符串最后出现的位置(忽略大小写)
13.substr  截取字符串 string substr(string $string,int $start,[int $length])
    $str = 'javascript';
    echo substr($str, 0,4) , '<br/><br/>';
    echo substr($str, 4) , '<br/><br/>';
    echo substr($str, -2) , '<br/><br/>';  倒数
    echo substr($str, -5,-1) , '<br/><br/>';倒数,长度:起点至结尾减去1
14.strstr  搜索一个字符串在另一个字符串中的第一次出现的位置
15.stristr 搜索一个字符串在另一个字符串中的第一次出现的位置(忽略大小写)
16.strrchr 搜索一个字符串在另一个字符串中的最后出现的位置,并***返回从该位置到字符串结尾的所有字符***
    $str1 = 'abcdcef';
    $str2 = 'c';
    echo strrchr($str1, $str2);

    $filename = 'a.bc.cd.png';
    echo strrchr($filename, '.');
    echo substr(strrchr($filename, '.'),1);

    $str3 = strrev($filename); //gnp.dc.cb.a
    $str4 = strstr($str3, '.'); //.dc.cb.a
    echo strrev(substr($str3, 0,strlen($str3) - strlen($str4)));

17.strrev 反转字符串
    $filename = 'ab.cd.gif.JpEg'; 
    $num = strrpos($filename, '.');
    echo $num;
    echo strtolower(substr($filename, $num+1)) , '<br/><br/>';

    $str2 = strrev($filename);
    $num = strpos($str2, '.');
    echo strtoupper(strrev(substr($str2, 0,$num)));

18.md5 实现计算字符串的md5哈希
    $str = 'wang';
    echo md5($str);
19.str_shuffle 随机打乱字符串
    $str = 'abcdefghijklmnopqrstuvwxyz';
    $str = str_shuffle($str);
    echo substr($str,0,4);
20.explode 使用一个字符串分割另一个字符串,得到数组
21.implode 将一个一维数组的值转化为字符串
    header('content-type:text/html;charset=utf-8');
    $str = 'A|B|C|D';
    $arr = explode('|', $str);
    print_r($arr);
    //数组
    $arr2 = array('Tom','John','Rose');
    $str2 = implode(',',$arr2);
    echo $str2 , '<br/>';
22.sprintf 格式化字符串  %多余参数,必须使用占位符:1\$
    $number = 5;
    $str = 'shanghai';
    $txt = sprintf('there are %d million cars in %s', $number, $str);
    echo $txt, '<br/><br/>';
    $number = 123;
    $txt = sprintf("带有两位小数的结果是:%1\$.5f,<br/>不带小数的是:%1\$d", $number);
    echo $txt;

    参数含义:
    %% 返回一个%            %b 二进制数
    %d 包含正负号的十进制        %e 小写科学计数法
    %s 字符串              %f 浮点数 (本地设置)

实体名http://www.w3school.com.cn/html/html_entities.asp

时间和日期函数

1.date格式化一个本地时间/日期
2.date_default_timezone_set 设置默认时区
3.date_default_timezone_get 获取默认时区
4.支持时区列表  Asia/Hong_Kong   Asia/Shanghai
5.通过配置文件修改时区  data.timezone
6.Unix时间戳或称Unix时间,POSIX时间是一种时间的表示方式,
定义为从格林时间19700101000000秒起至现在的秒数
7.time 返回当前Unix时间戳
    echo time() , '<br/><br/>';
    echo '当前的日期时间是:' , date('Y-m-d H:i:s') , '<br/>';
    echo '昨天的日期时间是:' , date('Y-m-d H:i:s',time()-86400) , '<br/>'; //24*60*60

8.strtotime 将字符串转换成Unix时间戳
    echo '三个星期之前的时间戳是:' ,  strtotime('-3 weeks') , '<br/><br/>';
    echo (time() -  strtotime('-3 weeks'))/86400 , '<br/><br/>';
    //获取上一个月的日期
    echo date('Y-m-d H:i:s',strtotime('-1 month')) , '<br/>';
    echo date('Y-m-d H:i:s',strtotime('first day of -1 month')) , '<br/>';
9.microtime 返回当期那Unix时间戳和微秒数
    echo microtime() , '<br/>';
    echo microtime(true) , '<br/>';//返回浮点数
    $start = microtime(true);
    $sum = 0;
    for ($i=0; $i <1000000 ; $i++) { 
        $sum += $i;
    }
    $end = microtime(true);
    echo  '共花费' , round($end - $start,3) , '秒';
10.uniqid函数基于以微秒计的当前时间,生成一个唯一的 ID。
    echo uniqid() , '<br/>';
    echo uniqid('mooc') , '<br/>';
    echo uniqid(microtime()) , '<br/>';
    echo uniqid(microtime() . mt_rand()) , '<br/><br/>'; //mt_rand(100,999);
    //uuid 8-4-4-4-12 = 32
    echo md5(uniqid(microtime() . mt_rand())) , '<br/><br/>';
    注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数
11.getdate 获取日期/时间信息
    print_r(getdate());

   date_default_timezone_set('Asia/shanghai');
   echo '当前日期:'  , date('Y-m-d') , '<br/><br/>';
   echo '下一个月的日期' , date('Y-m-d', strtotime('1 month')) , '<br/><br/>';
   echo '上一个月的日期' , date('Y-m-d H:i:s',strtotime('last day of -1 month')) , '<br/><br/>';
   echo '上一个月的日期' , date('Y-m-d H:i:s', strtotime("midnight last day of -1 month")) , '<br/><br/>'; 
   echo '昨天' ,  date('Y-m-d H:i:s',strtotime('yesterday')) , '<br/><br/>';
   echo '当前日期' ,  date('Y-m-d H:i:s',strtotime('now')) , '<br/><br/>';

  yesterday 昨天午夜
  midnight  午夜
  today     午夜
  noon      中午 120000
  tomorrow  明天午夜 
  first day of ?? 某月第一天
  last day of ??  某月最后一天

php数组

被包围在 <pre> 标签 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体
    echo '<pre>';
    $arr=range('1','5');
       print_r($arr);
       echo $arr[0],'<br/>';
       echo $arr[1],'<br/>';
       echo $arr[2],'<br/>';
    //count()得到数组中元素的个数
       echo count($arr),'<br/>';
       $var=123;
       echo count($var),'<br/>';
       $var=null;
       echo count($var),'<br/>';
    // exit;

    //for循环只能遍历下标连续的索引数组,下面的两个数组则无法遍历
     for($i=0,$count=count($arr)-1;$i<=$count;$i++){
         echo $arr[$i],'<br/>';
       }
    $arr=[
        5=>'a',
        -12=>'b',
        345=>'c'
    ];

    $arr=[
    'username'=>'king',
    'age'=>12
    ];

    echo '</pre>';

数组运算符相关

array_merge 合并数组
    $arr1=['a','b','c'];
    $arr2=['d','e','f'];
    $arr3 = $arr1 + $arr2;
    $newArr=$arr1 + $arr2;
    echo "如果数组键名相同,只会使用左边数组元素的值";
    var_dump($arr3);
    var_dump(array_merge($arr1, $arr2));

    $arr1=[
        'a','b','c'
    ];
    $arr2=[
        10=>'c',
        11=>'d',
        12=>'e'
    ];
    $arr3=[
        'username'=>'king',
        'age'=>12
    ];
    $arr4=[
        'username'=>'queen',
        'age'=>23,
        'email'=>'382771946@qq.com'
    ];
    $newArr=$arr1+$arr2+$arr3+$arr4;
    print_r($newArr);
    echo '<hr/>';
    //==  比较数组的键名和键值是否相同,如果相同返回true,否则返回false
    //=== 既要比较键名和键值是否相同,而且顺序也要相同
    $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);
    echo "<hr/>";

通过foreach遍历数组

foreach分为两种形式
   只要键值的情况
   foreach($数组名称 as $val){
    循环体;
    }
    既要键名又要键值的情况
    foreach($数组名称 as $key=>$val){
      循环体;
  }
  -----------------------------
   $arr=[
       5=>'a',
       12=>'b',
       -123=>'c',
       34=>'d'
    ];
     print_r($arr);
     -----------------------------------
     foreach($arr as $v){
       echo $v;
     };

查看PHP版本 phpinfo();

定义数组

    通过array()
    空数组

    $arr=array();
    //检测是否是数组
    var_dump($arr);
    //gettype():得到变量的类型
    echo gettype($arr);
    通过is_array():检测变量是否为数组
    var_dump(is_array($arr));

    //通过array()下标连续的索引数组
    $arr=array(2,3.4,'king',true);
    print_r($arr);

    //手动指定下标
    $arr=array(
      3=>'a',
      5=>'b',
      '6'=>'c'
    );
    print_r($arr);

    //定义关联数组
    $userInfo=array(
      'username'=>'king',
      'age'=>12,
      'email'=>'382771946@qq.com',
      'salary'=>600000
    );
    print_r($userInfo);

    //定义混合数组
    $arr=array(
     'a','b','c',
     'username'=>'imooc',
     'desc'=>'最好的在线教育平台',
     5=>'d',
     -12=>'e'
    );
    print_r($arr);

测试数组键名的

echo '<pre>';
    $arr=array(
      3=>'a',
      'username'=>'king',
      5.6=>'b',
      true=>'c',
      false=>'d',
      null=>'e'
    );
    var_dump($arr);
    echo '<hr/>';

    //如果下标重复,后面的覆盖前面的值
    $arr=array(
      'a',
      0=>'b'
    );
    var_dump($arr);
    echo '<hr/>';
    //如果新添加元素没有指定下标,它的下标为已有下标最大值加1(已有下标不全为负数)
    $arr=array(
      'a','b','c',
      5=>'d',
      19=>'e',
      'f'
    );
    var_dump($arr);
    echo '<hr/>';
    //如果已有下标都为负数,那么新添加元素的下标从0开始
    $arr=array(
      -12=>'a',
      -43=>'b',
      'c'
    );
    var_dump($arr);
    echo '</pre>';

二维数组

    //二维索引+索引
    $arr=array(
      array('a','b','c'),
      array('d','e','f')
    );
    //print_r($arr);

    //二维索引+关联
    $arr=array(
      array(
        'id'=>1,
        'username'=>'king'
      ),
      array(
        'id'=>2,
        'username'=>'queen'
      )
    );
    //print_r($arr);
    //二维关联+索引
    $arr=array(
      'users'=>array('king','queen','张三'),
      'ages'=>array(12,34,56)
    );
    //print_r($arr);
    //二维关联+关联
    $arr=array(
      'usersInfo'=>array(
        'id'=>1,
        'username'=>'king'
      ),
      'courseInfo'=>array(
        'cid'=>1,
        'courseName'=>'PHP'
      )
    );
    //print_r($arr);

二维中最重要的形式是二维索引+关联的形式
(数据库中查询出的记录就是这种形式)

二维的关联+关联

    echo "<pre/>";
    $arr=array(
      array(
        array('a')
      )
    );
    print_r($arr);

    echo '<hr/>';

    $arr=['a','b','c'];
    print_r($arr);

    echo '<hr/>';

    $arr=[
      ['id'=>1,'username'=>'king1','age'=>12],
      ['id'=>2,'username'=>'king2','age'=>22],
      ['id'=>3,'username'=>'king3','age'=>32],
      ['id'=>4,'username'=>'king4','age'=>42]
    ];
    print_r($arr);
    echo '<hr/>';
    $arr=[
      'courses'=>['courseName'=>'php','courseDesc'=>'PHP 是最好的语言'],
      'test'=>['a'=>'aa','b'=>'bb']
    ];
    print_r($arr);

动态创建数组

//动态创建下标连续的索引数组
    $arr1[]=12;
    $arr1[]=45678.9;
    $arr1[]=true;
    //array(12,45678.9,true)
    print_r($arr1);
    //手动指定下标的索引数组
    $arr2[3]=45;
    $arr2[-56]=-12;
    $arr2[0]='hello world';
    $arr2[]='this is king show time';
    print_r($arr2);
    //动态创建关联数组
    $desc='this is a test';
    $userInfo['username']='king';
    $userInfo['age']=12;
    $userInfo['desc']=$desc;
    $userInfo[12]='aaaa';
    $userInfo[]='bbb';
    print_r($userInfo);
    //二维的索引+关联
    $arr3[]=['id'=>1,'username'=>'king1','age'=>12];
    $arr3[]=['id'=>2,'username'=>'king2','age'=>12];
    $arr3[]=['id'=>3,'username'=>'king3','age'=>12];
    $arr3[]=['id'=>4,'username'=>'king4','age'=>12];
    print_r($arr3);
    //二维关联+关联
    $arr4['course']=['courseName'=>'php','courseDesc'=>'PHP is the best language'];
    print_r($arr4);
    $arr5[][][][][]=1;
    print_r($arr5);

快速创建数组

//快速创建下标连续的索引数组
    $arr=range(1,10);
    print_r($arr);
    $arr=range(-10,5);
    print_r($arr);
    //手动指定步长的数组  步长数2
    $arr=range(1,10,2);
    print_r($arr);
    echo '<hr/>';
    $arr=range('a','z');//97~122
    print_r($arr);
    echo '<hr/>';
    for($i=97;$i<=122;$i++){
      //从指定 ASCII 值返回字符。    
      $arr1[]=chr($i);
    }
    print_r($arr1);
    echo '<hr/>';
    //快速创建关联数组
    $username='king';
    $age=12;
    $email='382771946@qq.com';
    $userInfo1=array(
      'username'=>$username,
      'age'=>$age,
      'email'=>$email
    );
    print_r($userInfo1);

    $userInfo2['username']=$username;
    $userInfo2['age']=$age;
    $userInfo2['email']=$email;
    print_r($userInfo2);
    //注意,通过compact创建数组的时候,
    //只能写已经存在的变量的名称,不需要加$
    $a=12;
    $b=false;
    $c=null;
    $userInfo3=compact('username','age','email','a','b','c');
    print_r($userInfo3);

数组使用–查找元素

$arr=['a','b','c','d'];
    print_r($arr);
    echo $arr[2];
    echo '<br/>';
    $arr=[
      'username'=>'king',
      'age'=>12,
      'email'=>'382771946@qq.com'
    ];
    echo '用户名为:',$arr['username'],'<br/>';

二维的索引+关联

echo '<hr/>';
    $users[]=['id'=>1,'username'=>'king1','age'=>21];
    $users[]=['id'=>2,'username'=>'king2','age'=>51];
    $users[]=['id'=>3,'username'=>'king3','age'=>11];
    print_r($users);
    echo $users[1]['username'];
    echo '<hr/>';
    echo $users{2}{'age'};
    echo '<hr/>';
    //向数组中添加元素
    $arr=['a','b','c'];
    $arr[]='d';
    $arr['test']='this is a test';
    $arr[56]='hello world';
    $arr[0]='aaaa';
    print_r($arr);
    //更新操作
    $arr[3]='dddd';
    print_r($arr);
    //删除指定元素
    unset($arr['test']);
    print_r($arr);
    unset($arr[56]);
    print_r($arr);
    echo '<hr/>';
    //针对于二维数组的操作:增删改查操作
    $courses[]=['id'=>1,'courseName'=>'php','courseDesc'=>'PHP是最好的语言'];
    $courses[]=['id'=>2,'courseName'=>'javascript','courseDesc'=>'javascript是最好的语言'];
    $courses[]=['id'=>3,'courseName'=>'go','courseDesc'=>'go是最好的语言'];
    print_r($courses);
    echo $courses[0]['courseName'],'--',$courses[0]['courseDesc'],'<br/>';
    $courses[1]['courseName']='js';
    echo $courses[1]['courseName'],'<br/>';
    unset($courses[2]['courseName']);
    print_r($courses);
    unset($courses[1]);
    print_r($courses);
    echo '<hr/>';
    function test(){
      return ['a','b','c'];
    }
    $res=test();
    echo $res[1];
    echo '<br/>';
    echo test()[1];

数组指针相关函数

key($array):
        得到当前指针所在位置的键名,如果不存在返回null
        current($array):得到当前指针所在位置的键值,如果不存在返回false
        next($array):
        将数组指针向下移动一位,并且返回当前指针所在位置的键值;如果没有,返回false
        prev($array):
        将数组指针向上移动一位,并且返回当前指针所在位置的键值;如果没有,返回false
        reset($array):
        将数组指针移动到数组开始,并且返回当前指针所在位置的键值;如果没有,返回false
        end($array):
        将数组指针移动到数组的末尾,并且返回当前指针所在位置的键值;如果没有,返回false
        */
        echo '<pre>';
        $arr=[
          'a','b','c',
          35=>'test',
          'username'=>'king',
          'age'=>12
        ];
        // print_r($arr);
        /*
        Array
        (
            [0] => a
            [1] => b
            [2] => c
            [35] => test
            [username] => king
            [age] => 12
        )
        */
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo next($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo next($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo next($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo next($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo prev($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo '<hr/>';
        echo end($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        var_dump(next($arr),key($arr),current($arr));
        echo '<hr/>';
        echo reset($arr),'<br/>';
        echo '当前指针所在位置元素的键名为:',key($arr),'<br/>';
        echo '当前指针所在位置元素的键值为:',current($arr),'<br/>';
        echo '</pre>';

each list

<?php
/*
    list():将下标连续的从0开始的索引数组赋值给相应的变量
    each($array):得到当前指针所在位置的键值对,返回的是数组,包含4个部分;并且将指针向下移动一位
*/
  /* $arr=['a','b','c'];
   list($var1,$var2,$var3)=$arr;
   echo $var1,$var2,$var3;
   list(,$b,$c)=$arr;
   list(,,$c)=$arr;
   echo $b,$c;
   echo $c;
   echo '<hr/>';
   $arr=['a','b','c'];
   list($arr1[],$arr1[],$arr1[])=$arr;
   print_r($arr1);
   list() = [];
   list(,,) = [];
   list($x, list(), $y) = $a;*/

// $arr=[
//   [1,'king1',12],
//   [2,'king2',22],
//   [3,'king3',32]
// ];
// foreach($arr as list($id,$username,$age)){
//   echo $id,'-',$username,'-',$age,'<br/>';
// }

$arr=[
  'a'=>'aaaa',
  'b'=>'bbbb',
  'c',
  'username'=>'king',
  33=>'ddd'
];
//print_r($arr);
/*
Array
(
    [a] => aaaa
    [b] => bbbb
    [0] => c
    [username] => king
    [33] => ddd
)
*/
// $res=each($arr);
// print_r($res);
/*
Array
(
    [1] => aaaa
    [value] => aaaa
    [0] => a
    [key] => a
)
*/
// echo key($arr),'-',current($arr);

// list($k,$v)=each($arr);
// echo $k,'-',$v,'<br/>';

//  while(list($k,$v)=each($arr)){
//      echo $k,'--',$v,'<br/>';
//  }

重点内容

echo '<pre>';
$userInfo=[
  'username'=>'king',
  'password'=>'123456',
  'email'=>'382771946@qq.com'
];
$keys=join(',',array_keys($userInfo));
// print_r($keys);
$vals="'".join("','",array_values($userInfo))."'";
// print_r($vals);
//INSERT user(username,password,email) VALUES('king','123456','382771946@qq.com')
$sql="INSERT user({$keys}) VALUES({$vals})";
echo $sql;
echo '<hr/>';
//in_array()
$allowExts=['jpg','jpeg','png','gif'];
$ext='jpg';
var_dump(in_array($ext,$allowExts));
echo '<hr/>';
//shuffle($array):打乱数组
$string='速,度,快,放,假,了,开,始,对,房,价,来,看,是,地,方,记,录,卡,维,尔';

$arr=explode(',',$string);
shuffle($arr);
// print_r($arr);
$arr=array_flip($arr);
$res=array_rand($arr,4);
echo join('',array_values($res));
print_r($res);
echo '<hr/>';
$sum='102,123,456,789,2345,535';
echo array_sum(explode(',',$sum));
echo '<br/>';
echo array_product(explode(',',$sum));

重点内容

给你这样的字符串2,3,5,19,39

$string='2,3,5,19,39';
$arr=explode(',',$string);
echo array_sum($arr);
echo '<br/>';
echo array_product($arr);
echo '<hr/>';
/*
1.txt.php.jpg
截取文件扩展名,并且检测扩展名是否在['jpg','jpeg','gif','png']
*/
$allowExts=['jpg','jpeg','gif','png'];
$filename='1.txt.php.jpg';
$arr=explode('.',$filename);
$ext=end($arr);
var_dump(in_array($ext,$allowExts));
echo '<hr/>';
/*
array_push():
array_pop():
array_unshift():
array_shift():
*/
$arr=['a','b','c'];
$res=array_pop($arr);
echo $res;
print_r($arr);
echo '<hr/>';
array_push($arr,'hello world',123,324,23,345,'sdfs');
print_r($arr);
echo '<hr/>';
$arr=['a','b','c'];
echo array_shift($arr);
print_r($arr);
array_unshift($arr,'d','ef');
print_r($arr);
echo '<hr/>';
$filename='1.txt.jpg';
$allowExts=['jpg','jpeg','gif','png'];
$arr=explode('.',$filename);
$ext=array_pop($arr);
if(in_array($ext,$allowExts)){
  echo '文件类型合法';
}else{
  echo '非法文件类型';
}
/*
快速生成字符串

*/
$str1=join('',range(0,9));
$str2=join('',range('a','z'));
$str3=join('',range('A','Z'));
echo '<hr/>';
$arr1=range(0,9);
$arr2=range('a','z');
$arr3=range('A','Z');
$newArr=array_merge($arr1,$arr2,$arr3);
// print_r($newArr);
// $str='';
// for($i=1;$i<=4;$i++){
//   $str.=$newArr[mt_rand(0,count($newArr)-1)];
// }
// echo $str;
$res=array_rand(array_flip($newArr),4);
// print_r($res);
echo join('',$res);

$newArr=array_merge($arr1,$arr2,$arr3);
print_r($newArr);
shuffle($newArr);
print_r($newArr);

重点内容

$arr=['a','b','c'];
array_push($arr,'d','e','f');
print_r($arr);
$res=array_pop($arr);
echo $res;
print_r($arr);
$arr=['a','b','c'];
array_unshift($arr,'hello world');
print_r($arr);
echo array_shift($arr);
print_r($arr);

php如何定义数组常量

//define常量的值;仅允许标量和 null。
    //标量的类型是 integer, float,string 或者 boolean。
    //所以数组是不允许的

    //方法一:采用eval()函数
    //eval() 函数把字符串按照 PHP 代码来计算。
    //该字符串必须是合法的 PHP 代码,且必须以分号结尾。
    //如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

    //  define('BEST_PHPER',"return array('name'=>'巩文','address'=>'china');");
    //  $BEST_PHPER=eval(BEST_PHPER);
    //  var_dump($BEST_PHPER);

    //方法二:采用json_encode()函数
    //  define('BEST_PHPER',json_encode(array('name'=>'巩文','address'=>'china')));
    //  $BEST_PHPER=json_decode(BEST_PHPER,true);
    //  var_dump($BEST_PHPER);

    //方法三:采用serialize()函数
    //  define('BEST_PHPER',serialize(array('name'=>'巩文','address'=>'china')));
    //  $BEST_PHPER=unserialize(BEST_PHPER);
    //  var_dump($BEST_PHPER);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值