数组

数组的定义:

js:存储多个相同类型数据 ,有序的数据;
php数组

  • 1,:索引数组,同js;
    声明:$arrName=array(元素值1,元素值2,...,元素值n);
    count(数组):获取数组的长度
<?php
$arrName=array('a','b','c','d');//声明,也可以直接声明 $arrName=['a','b'];同js 版本要5.3以上;
//访问$arrName[0];a
echo 'number-two: '.$arrName[1];

echo $arrName[count($arrName)-1];//获取最后一个值
echo '<br/>';
//修改数组的值;下标存在则修改,不存在则添加值;跳过的位置不存在;有几个值,长度就统计几个值;
//js中不存在的值是 空/undefined;
$arrName[0]='123';
//查看数组的值,var_dump();查看的信息更全面;print_r();只看原数据;也可以查看变量
echo  '<pre>';//原样输出;
print_r($arrName);
echo  '</pre>';
//在尾部追加元素
$arrName[]='e';
print_r($arrName);
?>

数组遍历,foreach

<pre>
    遍历数组,foreach(数组 as 变量名){
    语句块执行的次数又数组的长度决定
        语句块
    };
    需要输出下标的话:
    foreach(数组 as 变量名0=>变量名1){ //变量名0是下标,变量名1是值;
    语句块执行的次数又数组的长度决定
        语句块
    };
</pre>
<?php
$arr=array('a','b','c','d',);
foreach($arr as $index=>$item){//$index 代表下标,$item 每一个值;
    ?>
    <p><?=$index+1?><?=$item?></p>
<?php
}
?>
  • 2.关联数组声明array('key1'=>value1,'key2'=>value2,...,'keyn'=>valuen,)
    //keyn为数组元素对应的键名;
<h2>关联数组声明</h2>
<pre><!--原样输出-->
<?php
//关联数组声明 array('key1'=>value1,'key2'=>value2,...,'keyn'=>valuen,)
//keyn为数组元素对应的键名;
$message=array('title'=>'学习PHP','content'=>'HTML ,CSS等','name'=>'frank');
$keys=array_keys($message);//查看数组的每个自定义的索引;
print_r($keys);
$content=array_values($message);//查看数组的每个值;
print_r($content);
//修改值
$message['title']='学习HTML';//会覆盖前面的值;
print_r($message);
//增加值
//$message['data']='2017.2.15';//$message[]='2017.2.15';是复合数组,下标为0;
print_r($message);
//关联数组的循环
$key=array('title'=>'标题','content'=>'内容','name'=>'姓名');
foreach($message as $key=>$value){//$key代表每个自定义的索引;$value 是对应的值;
    ?>
<p>key: <?=$key?> value:<?=$value?></p>
    <?
}
?>
</pre>

关联数组的值查找

 <?php
    $color =  isset($_GET['bg'])?$_GET['bg']:'';
    $bgColors = array('red'=>'红色','blue'=>'蓝色','yellow'=>'黄色','green'=>'绿色');
    if(empty($color)){
        //第一种方式
//        $color = array_keys($bgColors)[0];
//        echo $color;
//        echo current($bgColors);  //获取数组中的当前元素,当指针没有移动时当前元素是第一个元素
//        echo end($bgColors);  //获取数组中最后一个元素,、指针也移向最后一个位置
//        echo current($bgColors);
//        echo reset($bgColors); //获取数组中第一个元素,指针也移向第一个位置
//        echo next($bgColors); //获取数组中下一个元素,指针也移向下一个位置
//        echo prev($bgColors); //获取数组中上一个元素,指针也移向上一个位置
//        echo current($bgColors);
          $first = reset($bgColors);
          //array_search(元素值,数组名)----查找元素所在数组中对应的下标,没有找到返回false,找到对应的下标
          $color = array_search($first,$bgColors);
isset ()里面是数组的话是判断,变量是否声明;
    }
    ?>

多维数组

<?php
$students=array(
    array('name'=>'小二','age'=>'34','sex'=>'女'),
    array('name'=>'小三','age'=>'33','sex'=>'男'),
    array('name'=>'小四','age'=>'23','sex'=>'女')
);
//访问数组
print_r($students[0]);
echo '<br/>';
echo '访问第一个数组的name属性'.$students[0]['name'];//访问第一个数组的name属性;
?>

获取URL地址中的参数

浏览器的请求方式,get,post
get请求是数据是呈现在地址栏中,有大小限制,大约1024字节;
post 方法:传递数据大小与php.ini 配置有关,post_max_size,默认8M;

$_GET,$_POST是PHP设置的预定义数组,当没有相应参数时,数组为空;
$_POST:接收post请求时传递的参数;
$_GET:接收get请求时传递的参数;
print_r($_GET);//print_r($_POST);
form表单数据传递

<?php
//判断是否有输入值,如果没有输入则值为空;y有输入,那么value的值等于获取的参数值
$value=isset($_GET['inp'])?$_GET['inp']:'';
?>
<!--//如果action="do.php" 有值,则应该在相应页面获取参数值;-->
<form action="" method="get">
    <input type="text" name="inp" value="<?=$value?>">
    <input type="submit">
</form>
<?php
//无论是get方法还是post方法,都可以获取参数值;
$data=$_GET;
empty($data) && $data=$_POST;
print_r($data);
?>

数组相关函数

创建数组:range(10,20);
isset:判断数组是否有某个索引;
unset:销毁某个变量;

$number=range(10,20);//创建包含10至20之间数的数组,默认步长1;或者,range(20,10);
$number=range(10,20,2);//第三个值是步长;
$number=range(,'a','z',3);//英文字母也可以使用;

截取数组array_slice(原数组,startIndex,长度,bool是否保留原下标)

  • 长度不写,从起始位置到最后;
    长度值为负,则表示截取到倒数第几个;
    startIndex为负,从倒数位数开始;
    $max=ceil(count($number)/n):最大页码
    PHP:
    intval(变量);将变量转为整型,第一位遇到非数字,转为0;
    ceil(3.6);向上取整;
    floor(3.6);向下取整;
    js:
    向下取整:Math.floor(3.6);//3;
    向上取整:Math.ceil(3.6);//4;
    <a href="?p=2"></a>:超链接传入参数

分页

select :向URL传参;
<select onchange="location.href='?p='+this.value"><select>

分页

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        ul{
             list-style: none;
        }
        a{
            text-decoration: none;
            display: inline-block;width: 50px;
            height:30px;
        }
        li{
            display: inline-block;
            width:50px;
            height:30px;
            border-radius: 5px;
            background:#ccc;
            line-height:30px;
            text-align: center;
        }
    </style>
</head>
<body>
    <?php
        $number=range(1,30);
        $limit=4;//每页条数;
        $total=ceil(count($number)/$limit);//总页数
        $p=isset($_GET['p'])?$_GET['p']:1;//获取传入的值;
        $p=$p<1?1:$p;
        $p=$p>$total?$total:$p;//传入的页数大于最大页数,和小于1时做处理;
        $stat=($p-1)*$limit;//页面起始位置
        $page=array_slice($number,$stat,$limit);
    ?>
    <ul>
        <?php
        foreach( $page as $item){
            ?>
            <li><?=$item?></li>
        <?php
        }
        ?>
    </ul>
    <?php
        if($p!=1){
            ?>
            <span ><a href="?p=1">首页</a></span>
            <span ><a href="?p=<?=$p-1?>">上一页</a></span>
    <?
        }
        if($p!=$total){
            ?>
            <span ><a href="?p=<?=$p+1?>">下一页</a></span>
            <span ><a href="?p=<?=$total?>">尾页</a></span>
             <?
        }
    ?>

    <select onchange="location.href='?p='+this.value">
        <?php
            for( $i=1;$i<=$total;$i++){
                $selected=$i==$p?'selected':'';//$i是当前页面的话,选中当前页码;
        ?>
        <option value="<?=$i?>" <?=$selected?>><?=$i?></option>
                <?php
            }
        ?>
    </select>
</body>
</html>

数组的增删查改

追加元素都是返回的数组的长度,删除元素都是返回删除的数组



<pre>
<?php
$arr=array('a','b','c','d');
$len=array_push($arr,123,456);//返回添加后数组的长度;添加多个,直接在后面加;也可以添加数组;
print_r($arr);
array_unshift($arr,'123');//在前面添加;
print_r($arr);
$elems=array_shift($arr);//删除前面第一个值;返回删除的元素;
//print_r($elems);
$elems=array_pop($arr);//删除前面最后一个值;返回删除的元素;
print_r($elems);
//$newArr=array_splice($arr,1,4);//返回删除的元素;
//print_r($newArr);
$newArr=array_splice($arr,1,1,[10,20]);//返回删除的元素;替换多个元素用数组
print_r($newArr);
$newArr=array_splice($arr,1,0,[4,5]);//追加元素,位置索引是1;没有移出数据,则返回空数组;
print_r($arr);
?>
</pre>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • 要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。...
    恩德_b0c2阅读 396评论 0 0
  • 第三章 数组 数组是一个可以存储一组或一系列数值的变量 一个包含其他数组的数组称为多维数组。 关联数组允许使用更...
    梁烨端木阅读 674评论 0 0
  • 大家不要吐槽我写的乱,其实是简书的markdown编辑器有问题,看内容感觉写的很乱。我联系过简书的技术人员,连我理...
    Airmole阅读 957评论 0 4
  • Ruby 数组(Array) Ruby 数组是任何对象的有序整数索引集合。数组中的每个元素都与一个索引相关,并可通...
    黑夜的眸阅读 1,088评论 0 0
  • 分类 索引数组索引值从0开始,依次递增 关联数组以字符串为索引,键和值对是无序组合,每个键都是唯一的 数组的定义 ...
    cws阅读 346评论 0 0