php——11数组函数

数组

  • 数组属于复合类型数据
  • 数组实际上是一个有序的映射


分类

索引数组     数组的下标(key)是数字

关联数组     数组的下标(key)是字符串

不论是索引数组还是关联数组,都是通过key找到value的。


创建

array( )形式


创建索引数组
array(value1,value2,value3...)


例子一

// 通过array()创建下标连续的索引数组
$arr1 = array('A',2,false); 

输出结果:
    Array ( [0] => A [1] => 2 [2] => )
    false转换成空字符串


例子二

//创建手动指定下标的数组
$arr2 = array(2=>'a',3=>true);

输出结果:
    Array ( [2] => a [3] => 1 )



创建关联数组
array(key1=>value1, key2=>value2, key3=>value3...)


例子

// 定义关联数组
$userInfo = array(
    'username'=>'Tim',
    'age'=>23,
    'email'=>'404491216@qq.com'
);

print_r($userInfo);

输出结果:
    Array ( [username] => Tim 
            [age] => 23 
            [email] => 404491216@qq.com 
          )



[ ]形式 (5.4新增)

$arr = [value1,value2,value3...]


例子
// []创建数组
$arr = ['A','B',true,2];
print_r($arr);

输出结果:
    Array ( [0] => A [1] => B [2] => 1 [3] => 2 )



rang()

用于创建下标连续的索引数组。

range(min, max(, 步进制))

步进制:每个值相差多少,默认为1。


例子
// range()例子  值为1-10
$arr = range(1,10,2);
print_r($arr);

输出结果:
    Array
        (
            [0] => 1
            [1] => 3
            [2] => 5
            [3] => 7
            [4] => 9
        )



compact()

compact('变量名')

用于创建关联数组。

先定义在外部变量,然后传入变量即可生成数组。

注意,变量名需要用引号括起来。


例子
// compact()例子
$username = 'Tim';
$age = 23;
$email = 'xxx@xx.com';

// 注意,这里变量名需要用引号
$userInfo = compact('username','age','email');

输出结果:
    Array ( [username] => Tim [age] => 23 [email] => xxx@xx.com )



define()

define(key,value)


例子
define('TEST1',array('a','b','c'));
print_r(TEST1);

输出结果:
    Array ( [0] => a [1] => b [2] => c )



循环

for循环

for循环只能遍历下标连续的索引数组

补充:

count() 得到数组中的参数个数

如果是null,count()将返回0。


例子
// 使用rang()快速创建数组
$arr = range('a','d');

for($i=0; $i<$len; $i++){
    echo $arr[$i],'<br/>';
}

输出结果:
    a,b,c,d


for each 循环

只要value
foreach (数组名称 as $value)    

key和value 都要
foreach (数组名称 as $key => $value)  

注意:

  • 遍历空数组,不会执行循环体;
  • for each遍历时,操作的是数组的副本 ( php7新特性 )
  • 通过引用遍历,有更好的迭代特性,对数组的修改会影响循环 ( php7 )
例子
// php7新特性——foreach操作的是数组的副本
$arr = [0,1,2];
$ref =&$arr;

foreach($arr as $v){
    echo $v,'<br/>';

    // 老版本会删除1,但php7操作的是副本,所以没影响
    unset($arr[1]);
}

foreach输出结果:
    0 1 2

// 都是0、2   因为1被删除了
var_dump($arr,$ref);  

var_dump输出结果:
array (size=2)
  0 => int 0
  2 => int 2
)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值