PHP基础(五) 学习笔记

目录

一、字符串

        1、定义

        2、字符串长度

        3、字符串相关函数

二、数组

        1、概念

        2、php数组的分类

        3、php数组的创建

        4、多维数组

        5、数组元素的访问

        6、数组的长度

三、数组的指针

四、数组的遍历

        1、for循环       

        2、foreach

        3、while-each-list遍历 (了解)

五、数组操作常用函数

        1、获取数组的长度

        2、获取数组元素的键名和键值

        3、获取数组元素的键名和键值

        4、数组合并

        5、数组的排序

        6、extract


一、字符串

        1、定义

              使用单引号或双引号括起来的0个或多个字符串。

              单引号

                         不能解析变量的值,能被转义的有 \\    \'

              双引号

                         能解析变量的值,所有字符都能被转义

              heredoc            其本质就是使用双引号定义大段的文本,只是以另一种方式进行书写

              nowdoc             其本质就是使用单引号定义大段的文本,只是以另一种方式进行书写

<?php
/*
 * 字符串
 */
    $str = 'asdasd';
    $heredoc = <<<abc
       " Hello World "
abc;
    echo $heredoc,'<br />';

    $nowdoc = <<<'abc'
    hello
abc;
    echo $nowdoc,'<br />';

        2、字符串长度

                     ①、strlen()

                     语法:

                            strlen(变量)

                    说明:

                            用于获取一个字符串变量的字节数

<?php
/*
 * 字符串
 */
    $str = 'asdad';
    echo strlen($str);

                     ②、多字节字符的支持

                             mb_strlen(变量,存储字符编码)      获得一个字符串的字符个数

<?php
/*
 * 字符串
 */
    $str = 'asd撒旦ad';
    echo strlen($str),'<br />';//11
    echo mb_strlen($str,'utf-8');//7

        3、字符串相关函数

                     ①、查找&截取

                              strpos(str,substr [,int $offset = 0 ])         用于在字符串str中查找子字符串substr首次出现的位置

                              strrpos(str,substr [,int  $offset = 0])          用于在字符串str中查找子字符串substr末次出现的位置

                              strstr(str,substr)                                            用于在字符串str中查找并截取子字符串substr首次出现的位置

                              strrchr(str,substr)                                          用于在字符串str中查找并截取子字符串substr末次出现的位置

<?php
/*
 * 字符串
 */
    $str = 'http://www.baidu.com/hello';
    echo strpos($str,'/'),'<br />';
    echo strrpos($str,'/'),'<br />';
    echo strstr($str,'/'),'<br/>';
    echo strrchr($str,'/'),'<br />';

                     ②、分割

                             explode(分割符,str)

                             说明:

                                     根据指定的分割符,将字符串str进行分割,并保存在数组中返回

<?php
/*
 * 字符串
 */
    $str = "星期一,星期二,星期三,星期四,星期五";
    $array = explode(',',$str);
    echo '<pre>';
    print_r($array);

                     ③、替换

                             str_replace(search,rep,str);

                             说明:

                                      在字符串str中查找search表示的部分,并替换为rep代表的内容

<?php
/*
 * 字符串
 */
    $str = "星期一,星期二,星期三,星期四,星期五";
    echo str_replace(',','/',$str);

                     ④、大小写转换

                             strtolower(str)          将字符串全转换成小写

                             strtoupper(str)         将字符串全转换成大写

<?php
/*
 * 字符串
 */
    $str = "Hello ,World";
    echo strtolower($str),'<br />';
    echo strtoupper($str),'<br />';

                     ⑤、去除指定字符

                             trim(str [,substr])                     除字符串首尾处的空白字符(或者其他字符)

<?php
/*
 * 字符串
 */
    $str = "  Hello,World!  ";
    $str2 = "aaHello,World!aa";
    echo trim($str),'<br />';
    echo trim($str2,'aa'),'<br />';

                     ⑥、pathinfo

                      语法:

                               pathinfo(path,[,option]);

                      说明:

                               用于获取一个文件的路径信息(文件名,文件夹,扩展名)

                               option 参数用于获取路径信息中指定的部分。

<?php
/*
 * 字符串
 */
    $str = "D:\wamp64\www\lgz\index.php";
    echo '<pre>';
    $info = pathinfo($str);
    print_r($info);
    echo '<br />';
    echo pathinfo($str,PATHINFO_BASENAME),'<br/>';
    echo pathinfo($str,PATHINFO_DIRNAME),'<br/>';
    //...

                     ⑦、md5()

                      语法:

                              md5(str)

                      说明:

                               用于对字符串str进行md5加密。对任何长度的字符串进行md5加密得到的都是32为长度的字符串;

<?php
/*
 * 字符串
 */
    $pwd = '123';
    echo md5($pwd),'<br/>';

                     ⑧、htmlspecialchars

                      语法:

                              htmlspecialchars(str);

                     说明:

                            将特殊字符转换为 HTML 实体

字符替换后
& (& 符号)&amp;
" (双引号)&quot;,除非设置了 ENT_NOQUOTES
' (单引号)设置了 ENT_QUOTES 后, &#039; (如果是 ENT_HTML401) ,或者 &apos; (如果是 ENT_XML1ENT_XHTMLENT_HTML5)。
< (小于)&lt;
> (大于)&gt;
<?php
/*
 * 字符串
 */
    $img = "<img src='public/123.jpg'/>";
    echo $img,'<br />';
    $img = htmlspecialchars($img);
    echo $img,'<br />';

二、数组

        1、概念

                     数组是一种数据的集合

                     数组主要是于存储具有行列特征的数据

        2、php数组的分类

                     ①、索引数组

                             数组的下标是整数

                     ②、关联数组

                             数组的下标是字符串

        3、php数组的创建

                     ①、索引数组的创建

<?php
/*
 * 数组
 */
    //显示创建
    $array = [10,20,30,40];
    $array2 = array(10,20,30,40);

    //隐式创建
    $array3 = array();
    $array3[0] = 10;
    $array3[4] = 30;
    $array3[6] = 40;
    $array3[9] = 60;
    echo '<pre>';
    print_r($array);
    echo '<br/>';
    print_r($array2);
    echo '<br/>';
    print_r($array3);

说明:在php中的下标可以不连续

                     ②、关联数组的创建

                             语法:

                                      $arr = array(键名=>键值,键名=>键值...);

                                      $arr = [键名=>键值,键名=>键值...];

<?php
/*
 * 数组
 */
    //显示创建
    $arr = array('name'=> 'lgz','pwd'=>'123456');
    $arr2 = ['name'=>'Y','age'=>'21'];

    //隐式创建
    $arr3 = array();
    $arr3['name']='L';
    $arr3['id']='007';
    $arr3['tel']='139xxxxxxxx';

    echo '<pre>';
    print_r($arr);
    echo '<br/>';
    print_r($arr2);
    echo '<br/>';
    print_r($arr3);

        4、多维数组

                    一个数组中的元素又包函数组元素,则这个数组就称为多维数组

<?php
/*
 * 数组
 */
    //显示创建
    $arr = array(
        'goods'=>array('id'=>'1','price'=>'100'),
        'goods2'=>array('id'=>'2','price'=>'100'),
        'goods3'=>array('id'=>'3','price'=>'100'),
        'goods4'=>array('id'=>'4','price'=>'100')
    );
    echo '<pre>';
    print_r($arr);

        5、数组元素的访问

                     ①、一维数组元素的访问

                      语法:

                               $数组名[下标/键名];

                     ②、二维数组元素的访问

                      语法:

                               $数组名[第一维度下标/键名][第二维度下标/键名];

<?php
/*
 * 数组
 */
    //显示创建
    $arr = array(
        'goods'=>array('id'=>'1','price'=>'100'),
        'goods2'=>array('id'=>'2','price'=>'100'),
        'goods3'=>array('id'=>'3','price'=>'100'),
        'goods4'=>array('id'=>'4','price'=>'100')
    );
    echo '<pre>';
    print_r($arr['goods']);
    echo '<br/>';
    echo $arr['goods3']['price'];

        6、数组的长度

                    count()

                    用于获取数组的长度

<?php
/*
 * 数组
 */
    //显示创建
    $arr = [10,20,30,40];
    echo count($arr),'<br />';

三、数组的指针

            数组指针用于表示当前所关注的元素

           crrent($arr)                   用于获取当前指针所指向的元素的键值

           key($arr)                       用于获取当前指针所指向的元素的键名

           next($arr)                     用于将数组的指针下移

           prev($arr)                     用于将数组的指针下移

           reset($arr)                   用于将数组的指针重置(归位,数组的指针默认位于第1个元素)

           end($arr)                     用于将数组的指针移动到最后一个元素

四、数组的遍历

        1、for循环       

                     只能遍历下标连续或有规律的索引数组。

<?php
/*
 * 数组   
 */
    //显示创建
    $arr = [10,20,30,40];
    for($i=0;$i<count($arr);$i++){
        echo $arr[$i],'<br />';
    }

        2、foreach

                 语法:foreach($arr as $key => $value);      $arr是要遍历的数组名,$key和$value 的变量名可自定义,

                             所处位置对应数组中元素的键名和键值

<?php
/*
 * 数组
 */
    //显示创建
    $arr = [10,20,30,40];
    $arr2 = ['id'=>'07','name'=>'lgz'];
    foreach ($arr2 as $key => $value){
        echo $key,'->',$value,'<br/>';
    }

                 原理:

                         首先对数组的指针进行重置

                         读取当前指针所指向的数组元素,并将元素的键名赋值给变量$key,将键值赋给变量$valeu;

                         同时将数组的指针下移一行

                         foreach由系统控制循环次数,自动判断循环结束。

        3、while-each-list遍历 (了解)

                     使用while循环,及each(),list语法结构联合来遍历数组

                    ①、each()           //在php7.2.0被废除

                    说明:

                             用于获取当前指针所指向的元素键名与键值,并以索引元素与关系元素两种形式来表示,同时将指针下移一行

<?php
/*
 * each
 */
    $arr = ['one'=>10,'two'=>20,'three'=>30,'four'=>40,'five'=>50];
    echo '<pre>';

    $item = each($arr);
    print_r($item);

    $item = each($arr);
    print_r($item);

    $item = each($arr);
    print_r($item);

    $item = each($arr);
    print_r($item);

    $item = each($arr);
    print_r($item);

    $item = each($arr);//没有元素可以读取,返回false不输出
    print_r($item);

    var_dump($item);

                     ②、list

                     语法:

                             list(变量列表)=$arr

                     说明:

                            将数组$arr中的索引元素赋值给变量列表中的变量

                    示例:

 

<?php
/*
 * list
 */
    $item = array(
        '1'=>30,
        'value'=>30,
        'key'=>'id',
        '0'=>'id',
    );

    list($k,$v)=$item;
    echo $k,' ',$v,'<br/>';

                      ③、while-each-list遍历

<?php
/*
 * list
 */
    $item = array(
        'id'=>'007',
        'name'=>'lgz',
        'sex'=>'man',
        'age'=>22,
    );
    while(list($k,$v) = each($item)){
        echo $k,'  ',$v,'<br/>';
        if(!$k){
            break;
        }
    }

五、数组操作常用函数

        1、获取数组的长度

                    count($arr)

        2、获取数组元素的键名和键值

                   ①、array_keys(arr);         获取数组元素所有的键名

                   ②、array_values(arr);     获取数组元素所有的键值

        3、获取数组元素的键名和键值

                   ①、array_key_exists(key,arr);        用于判断某个键名是否存在于数组中

                   ②、in_array(value,arr);                    用于判断某个键值是否存在于数组中

<?php
/*
 * list
 */
    $item = array(
        'id'=>'007','name'=>'lgz','sex'=>'man','age'=>22
    );
    var_dump(array_key_exists('name',$item));
    var_dump(in_array('lgz',$item));

        4、数组合并

                     array_merge(arr1,arr2)

                     注:若两个数组是关联型数组,且拥有相同的键,则后者会更新前者

<?php
/*
 * list
 */
    $item = array(
        'id'=>'007','name'=>'lgz','sex'=>'man','age'=>22
    );
    $a = array(
        'name'=>'Tom','height'=>175,'weight'=>'90'
    );
    $return = array_merge($item,$a);
    echo "<pre>";
    print_r($return);

        5、数组的排序

                    ①、sort()           按键值对数组进行升序排序

                    ②、rsort()          按键值对数组进行降序排序

                    ③、asort()         按键值对数组进行升序排序,但索引关系不变

                    ④、arsort()        按键值对数组进行降序排序,但索引关系不变

                    ④、ksort()、kasort()                             按键名进行排序

                    ⑥、usort()、uksort(),uasort()          用户自定义排序 usort(arr,callable);

<?php
/*
 * array
 */
    $arr = [1,28,15,88,21,120,8];
    sort($arr);//按键值进行数组升序排序
    echo '<pre>';
    print_r($arr);
    echo '<br/>';

    rsort($arr);//按键值进行数组降序排序
    print_r($arr);
    echo '<br/>';

    asort($arr);//保持索引关系按键值进行数组升序排序
    print_r($arr);
    echo '<br/>';

    arsort($arr);//保持索引关系按键值进行数组降序排序
    print_r($arr);

        6、extract

                     用于解压数组,将关联元素转换为以键名为变量名的变量(若转换不成功则不转换,例如键名不符合变量命名规则)

<?php
/*
 * list
 */
    $item = array(
        'id'=>'007','name'=>'lgz','sex'=>'man','age'=>22
    );
    extract($item);
    echo $id,'<br/>';
    echo $name,'<br/>';
    echo $sex,'<br/>';
    echo $age,'<br/>';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值