PHP数组与数组方法总结

PHP中数组可以同时使用、存在  :「索引数组」 和「关联数组」 

创造数组

「索引数组」 :

$a[0]=”0″;$a[1] = “1”;$a[2]=”2″;$a[3] = “3”;
$a = array(“0″,”1″,”2″,”3”);

「关联数组」 :

$a[“dyg”]=”0″;$a[“dyg1”] = “1”;$a[“dyg2″]=”2”;$a[“dyg3”] = “3”;
$a = array(“dyg” => “0”, “dyg1″ =>”1″,”dyg2” => “2”,”dyg3″ => “3”);

5.3以上可以使用新方法定义一个数组(短数组定义)

$a = [1,2,3,4,5];

数组中的元素是可以在存数组的,也就是说    支持多维数组

超全局数组(预定义变量)

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。

这些超全局变量是:

  • $_GLOBALS        (global) 变量
  • $_SERVER            服务器变量
  • $_REQUEST         (request)变量
  • $_POST                   HTTP  POST变量
  • $_GET                     HTTP  POST变量
  • $_FILES                  HTTP 上传变量 
  • $_ENV                   服务器环璄变量
  • $_COOKIE              HTTP    Cookies上传变量 
  • $_SESSION             (session) 变量

数组内部指针

next()        向下移动指针
prev()        向上移动指针
reset()       将指针重置到开头
end()        指针移到未尾
key()         获取当前元素的键值
current()          获取当前元素的值

数组方法

foreach  / for 遍历数组

$a =array(1,2,3,4);
for($b = 0;$b < count($a);$b ++){
    echo $a[$b];
}
foreach($a as $v){
    echo $v;
}

list取成员信息

list格式 :    list($a,$b $…….)  = array(1,2,3,4,5);

  1. list方法会将右边的数组按位传递,给声明一个变量存储
  2. 数组有几个元素,左边就可以有几个变量,
  3. 左边的参数可以多,也可以少,也可以不写,可以使用逗号省略
  4. 只能用于索引数组,下标从0开始,如果中间有其他不规则数据,则会截断获取不到值

each取成员信息

each格式 :   $a =  each(array(1,2,3,4,5));

  1. 返回值如下   Array ( [1] => 1 [value] => 1 [0] => 0 [key] => 0 ) , 只有4个元素
  2. 返回的还是一个数组,关联+索引数组
  3. each处理完后,指针向下移动,默认元素是第一个元素
  4. 如果指针在最后一位,再用each()则会返回false

数组   「   键 、值  」 方法

array_keys()   取数组所有键值  
array_values()  取数组所有值
in_array(值,数组)    判断数组中是否存在某值     
array_search(值,数组)  搜索数组中值的键名,返回其位置,不存在返回false
array_key_exists(值,数组)   判断数组中是否存在些键值
array_flip(数组)     交换数组中的键和值,如果出现相同的键名,则会覆盖,只有整型和字符串能转换为键

数组统计方法

count()     统计数组元素个数
array_count_values()     统计所有值出现的次数
array_unique()      删除数组中重重复的值

数组其他方法

array_reverse()     返回一个与原数组元素相反的数组
array_filter(数组,函数)        返回一个数组,由函数返回真假值来确定是否保留原数据
array_walk(数组,函数)      对数组中的每个成员都应用函数,成功返回真
array_map(函数,数组)       返回一个新数组,由以前的数组的每个值经过处理后的新数组

统计方法:演示

$a =array(1,2,3,4,5,6,7);
$b = array_filter($a,function($value){    //数组会依次将值传递给$value
    if($value % 2   == 0)        //过滤2的倍数
        return false;
    return true;
});
print_r($b);           //  ===>  输出    Array ( [0] => 1 [2] => 3 [4] => 5 [6] => 7 )
$c = array_walk($a,function($value,$key,$str){    //$value 对应数组的值,$key对应数组的键,$str为用户自定的字符串
    return $value * 2 ;
},"123");     //最后一个参数为我们的要传入的字符串信息
var_dump($c);     //    ====>   ture  
$d = array_map(function($v){     //会将值依次传递经$v,再由return 给新的数组
   return $v + 9 ;
},$a);
print_r($d);      // 处理后的新数组,输出 =====>Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 13 [4] => 14 [5] => 15 [6] => 16 )

发表评论

发表评论

*

沙发空缺中,还不快抢~