数组

2016-09-13  本文已影响0人  刘宇龙

数组基本概念

直接赋值声明数组

  1. 一个数组中存的是多个内容, 数组中的内容叫作 “元素”
  2. 每个元素都是由 键和值 组成的 key/ value key下标
    $a = array("one"=>"11111111", "two"=>"222222222");
  3. 就是通过 key 使用 值
    下标有两种类型: 一种是整数(索引数组), 一种是字符串(关联数组)
    []来操作下标, 也可以使用{}进行互换, 建议使用 []来指定下标
  4. 在使用下标时,如果是关联数组, 一定要使用引号, 不要使用常量名称
  5. 数组的自动增涨下标, 默认是从0开始的, 自动增涨的都是出现过的最大值加1
  6. 关联数组的字符串下标, 不会影响索引下标的排列规则!
  7. 使用array()函数声明数组, 默认是索引的下标, 是从0开始
  8. 使用 => 符号指定下标
    php5.4以后, 可以像其他语言一样声明数组了
  9. 删除数组中的一个元素使用unset(), 下标不会重新索引, 需要使用array_values()函数重新索引

直接赋值:

    $arr[0] = 1;
    $arr[1] = 2;
    $arr[2.7] = 3;
    $arr[true]=5;
    $arr[false]=6;
    $arr[null]=7;

    $arr{'one'} = 1;
    $arr['two'] = 2;
    $arr['three'] = 3;

    print_r($arr);

数组下标排列规则:

$arr[]=10;    //0
$arr[]=10;   //1
$arr[]=10;    //2
$arr[8]=10;   //8
$arr[]=10;    //9
$arr[9]=11;   //9
$arr[]=10;    //10
$arr[4]=44;   //4;

$arr[] = 55;  //

$arr['one']=66;

$arr[] = 99;

$arr[-100]=-100;
$arr[] = 'aa';

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

声明数组:

function demo() {
        return array("one", "two", "three");
    }

    $arr = demo();

    echo $arr[0];
    echo '<br>';


    echo demo()[1];

删除数组:

$arr = ["one", "two", "three", "four"];

    unset($arr[2]);

    $arr = array_values($arr);

    print_r($arr);

循环删除数组例子:

function xdw($m, $n) {
    $arr = array();

    $a = "a";

    for($i=0; $i<$m; $i++) {
        $arr[] = $a++;
    }

    $i=0;
    while(count($arr) > 1) {

        if($i%$n == 0) {
            unset($arr[$i]);
        } else {
            $arr[] = $arr[$i];
            unset($arr[$i]);

        }

        $i++;
    }

    return $arr;

}

print_r(xdw(80, 7));

二维数组:(数组的数组)

<?php
// $one = array("name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com");
// $two = array("name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com");
// $three = array("name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com");
//
// $group=array($one,$two,$three);

$group=array(
        array("name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"),
        array("name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"),
        "three"=>array("name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com")
);
// var_dump($group[1]);
// $arr=$group[1];
// echo $arr['email'];
// echo $group[1]['email'];
echo $group['three']['name'];

多维数组:

用类封装数组

<?php
// $class=[
// "group1"=>[
//               ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
//               ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
//               ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
//       ],
//       [
//               ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
//               ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
//               ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
//       ],
//       [
//               ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
//               ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
//               ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
//       ]
// ];
// echo $class[0][1]['age'];

第一个方括号不管有没有顺序排,第二个不填默认为0

$group[9][1]="zs";
$group[][1]=20;
$group[][1]='ls';
$group[][1]=21;

echo '<pre>';
print_r($group);
echo '</pre>';
上一篇 下一篇

猜你喜欢

热点阅读