php中的数组

2018-05-15T18:49:49

[title]定义数组[/title]

1、通过array()的方式创建数组
空数组、定义关联数组、定义混合数组

$arr = array(
  'a','b','c',
  'username'=>'chunlai',
  343=>'加油',
  true=>'true',
  false=>'false',
  null=>'null',
  5.6=>'5.6'
);
var_dump($arr);

这里键名true变成1,false变成0,null变成空,小数变成整数

//如果下标重复那么后面的会覆盖前面的值
$arr = array(
  'a',
  0=>'b'
);
var_dump($arr);

array (size=1) 0 => string 'b' (length=1)

//如果新添加的元素没有下标,那么它的下标是已有下标最大值加1(已有下标不全为负数的情况)
$arr = array(
  'a', 'b', 'c',
  12=>'d',
  78=>'k',
  'kk'
);

//如果已有下标都为负数,那么新填加元素的下标从0开始
var_dump($arr);
$arr = array(
  -12=>'a',
  -43=>'b',
  'c'
);
var_dump($arr);
$arr = array(
  -43=>'b',
  -12=>'a',
  'c'
);
var_dump($arr);
$arr = array(
  2=>'b',
  1=>'a',
  'c'
);

2、通过array[]动态定义数组

//php5.4之后
$arr = ['a','b','c'];
var_dump($arr);
//array[]动态创建数组
$arr1[23] = ['a','b','c'];
$arr1[2] = ['a','b','c'];
$arr1[] = ['a','b','c'];
var_dump($arr1);

也可以通过array[][]创建二维数组,但是不常用,还是用上面的多

$arr[0][0] ='1,2,3,4,5';
$arr[0][1] ='1,2,3,4,5';
$arr[0][2] ='1,2,3,4,5';
$arr[1][] ='ni';
$arr[2][] ='c';
var_dump($arr);

[title]通过array()创建多维数组[/title]

//二维索引加索引
$arr = array(
  array('a', 'b', 'c'),
  array(1,2,3)
);
var_dump($arr);
echo '<pre/>';

二维中用的最多的是索引加关联的形式,因为数据库中查询出的记录就是这种形式。

[title]快速创建数组[/title]

通过range()和compact()快速创建数组

range()函数

描述:range — 根据范围创建数组,包含指定的元素

用法:array range ( mixed $start , mixed $end [, number $step = 1 ] )

compact()函数

描述:compact — 建立一个数组,包括变量名和它们的值

用法:array compact ( mixed $varname1 [, mixed $... ] )

ps:两者的区别在于range()用来创建索引数组,compact()函数用来创建关联数组

//快速创建数组
//快速创建下标连续的索引数组
echo '<pre>';
$arr = range(1,10);
var_dump($arr);
echo '<pre/>';

$arr = range(-10,5);
var_dump($arr);

//手动指定步长的数组
$arr = range(1, 10, 2);
var_dump($arr);

// 输出a~z
$arr = range('a','z');//97~122
var_dump($arr);
//同样的也可以用for循环去写
for($i = 97; $i <= 122; $i++){
  $arr1[] = chr($i);
}
var_dump($arr1);

// 通过compact(),只能用已经存在的变量,不用加$
$name = 'chunlai';
$age = '20';
$email = 'kk@heifuture.com';
$arr = compact('name', 'age', 'email');
var_dump($arr);

[title]定义常量数组[/title]

//定义常量数组
//const在5.6之后可以定义常量
const ARR1 = array(1,2,35,6);
var_dump(ARR1);
const ARR2 = [1,2,35,6];
var_dump(ARR2);
define('TEST', array('a','b','c'));
var_dump(TEST);
define('TEST1', ['a','b','c']);
var_dump(TEST1);

ps:用define()的时候一定要注意php的版本

[title]数组的使用[/title]

通过键名找键值

//更新键值:$arrayName(键名) = 键值

//删除元素:unset($arrayName(键名))

[title]将其他类型转化为数组[/title]

//其他类型转化为数组
//临时转换
$aa =234;
$aa = 23.4;
$aa = true;
$aa = false;
$aa = null;//会转化成空数组
$kk = array($aa);
print_r($kk);
//永久转化,settype($var, $type)
$var = 235;
settype($var, 'array');
print_r($var);

[title]数组运算符[/title]

//数组运算符相关
//+合并数组
echo '<pre>';
$arr1 = [1,2,3,4,5];
$arr2 = [6,7,8,9,10];
$newarr = $arr1+$arr2;
print_r($newarr);
//如果数组键名相同只会使用左边的数组元素的值
$arr1 = [1,2,3,4,5];
$arr2 = [
  12=>12,
  13=>13
];
$newarr = $arr1+$arr2;
print_r($newarr);
echo '<pre/>';

ps:如果数组键名相同只会使用左边的数组元素的值,不会覆盖

==:比较键名和键值是否相同

===:比较键名和键值是否相同,并且顺序和类型也要相同

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。