数组

数组基础

含义

数组是一系列数据的集合体,按顺序排列为“链的形状”。

php的数组元素的顺序,与下标无关,与放置顺序有关

定义:

常见的数组,默认下标从0开始

$arr = array(3,11,5,2);

关联数组,下标为字符串,常见

$arr = array('a' => 3 , "b" => 123);

下标可以为给定值

$arr = array( 1 => 3 , 10 => 123, 0 => 123);

下标可以字符串和数字混合使用

$arr = array( 1 => 3 , "10" => 123, 0 => 123);

下标可以指定,也可以自动下标

$arr = array( 5 => 3 , 200,"10" => 123, 3 => 123);
//下标为 5 6 "10" 3

下标重复的情况,如下,实际数组只有 123、200

$arr = array( 1 => 3 , 200,  true => 123);

下标可以为负数

$arr = array( 1 => 3 , 200,  -1 => 123);

数组分类

索引数组: 类似oc的数组 关联数组: 类似oc的字典 多维数组:

$dd = array(
    array(1,11),
    array(2,11)
);

数组基本使用

求平局值

  • 求一个一维数组平均值
$a = array(1,2,3);
$len = count($a); //长度
$c = 0 ; //数组的个数
$sum =  0;
for($i=0; $i<$len;++$i){
    $sum += $a[$i];
    ++$c;
}

echo "结果:".($sum/$c);
  • 二位数组平局值
$a = array(1,2,3);
$dd = array(
        array(1,2,3),
        array(1,2,3,4),
        array(1,2,3,5)
);

$len = count($dd);
$sum = 0 ;
$c = 0 ;
for($i=0; $i<$len; ++$i){
    $temp = $dd[$i];
    $len2 = count($temp);
    for($k = 0 ; $k<$len2;++$k){
        $sum += $temp[$k];//累加
        ++$c;
    }
}
echo "结果:".($sum/$c);

foreach 基本语法

基本语法:

foreach($变量名 as [$key =>] $value){
    //循环体:这里可以使用$key和value 
    //key和value就是遍历语句一次次取得的数组的每一个单元项的下标和对应值。 
    //而且,它总是从数组的开头往后    
}

举例:

$colors = array("red","green","blue","yellow");

foreach ($colors as $value){
    echo "<br> $value"; //red ...
}

foreach ($colors as  $key => $value){
    echo " <br> $key : $value"; //0 : red   ...
}

数组的指针操作及其原理

20170625413181.png

默认情况下:

  1. 箭头,就是数组内部所谓的“指针”
  2. 默认指向第一个单元
  3. 数组有关单元的操作,如果没有指定下标,就是针对该指针指向单元的操作
$v1 = current($数组); //获得数组的当做指针所在单元的“值”
$v2 = keys($数组); //获得数组当做指针所在单元的“键”
$v3 = next($数组); //先将数组的指针移向后一个单元,然后取得该单元的值
$v4 = prev($数组); //先将数组的指针移向前一个单元,然后取得该单元的值
$v5 = end($数组); //先将数组的指针移向最后一个单元,然后取得该单元的值
$v5 = reset($数组); //先将数组的指针移向第一个单元,然后取得该单元的值