PHP 能够创建数组的方法

array() | [ ] | array_fill() | array_fill_keys() | compact() | range() | explode()


常用的方法包括:
array() 手工创建基础的数组
[ ] 直接赋值给一个变量;
array_fill() 创建一个规定了初始值,长度和所有键值的索引数组
array_fill_keys() 创建一个规定的键名和所有键值的关联数组;
compact() 根据 当前作用域范围内 已有的变量创建关联数组;
range() 创建一个范围数组
explode() 根据字符串返回数组;


array()
最基础的返回一个数组;

语法结构1:
return array array(mixed $val_1, mixed $val_2 ......)
返回以键名 0 开头的索引数组;

实例:
print_r(array('bill','tom',33))

return : array(0=>'bill',1=>'male',2=>33);

语法结构2:
return array array(mixed $key_1 => mixed $val_1,mixed $key_2=> mixed $val_2......)

实例:
print_r(array('name'=>'bill','sex'=>'male','age'=>33))

return : array('name'=>'bill','sex'=>'male','age'=>33


[ ]
直接赋值给变量的写法;

语法结构1:
$a_name = [mixed $val_1 ,mixed $val_2]
创建一个 标识符为a_name 的数组;

实例:
$a_name = ['bill','jack','tom'];

实例:

$a_personal_info = [['bill','worker',33].['tom','driver',20]]


array_fill()
创建一个规定了初始索引,长度和所有键值的数组;

语法结构1:
array_fill(int $star ,int $length, mixed $val)
返回一个以 star 为初始索引值,$length 为长度,$val 为所有键值的索引数组;

实例:
print_r ( array_fill(0,3,'bill'));

return : array('bill','bill','bill');


array_fill_keys()
创建一个以其他数组的键值为键名,指定了同一键值的关联数组;

语法结构1:
array_fill_keys(array $keys,mixed $val)
返回一个以数组 $keys 的键值为键名,$val 为键值的关联数组;

实例:
$a_keys = array('bill','tom','jack');
array_fill_keys($a_keys,33);

return : array('bill'=>33,'tom'=>33,'jack'=>33);


compact()
把变量转化为数组;
创建一个以 当前作用域范围内 已有变量为键名,变量值为键值的关联数组;
注意: 不许再这个作用范围内的变量;

语法结构1:
compact(str $var_name_1,str $var_name_2......)
str $var_name --已有变量名称的字符串,如果该字符串不是已有变量的标识符,会忽略这个字符串;

实例:
$first_name = 'paul';
$last_name = 'smith';
$a_smith_info = compact('first_name'm,'last_name');

return : array('first_name'=>'paul','last_name'=>'smith');

语法结构2:
compact(array $array);
array $array -- 数组的键值是已有变量名称的字符串;

实例:
$first_name = 'paul';
$last_name = 'smith';
$a = array('first_name','last_name')
$a_smith_inof = compact($a);

return : array('first_name'=>'paul','last_name'=>'smith');

相关:
extract() 把数组转化成变量;
list() = array() 把键值赋值给变量;


range()
创建一个范围数组;

语法结构1:
range(int $star ,int $end [,int $step])
创建一个 $star -$end 之间的,步调为 $step 的数组;如果最后的步调!= $end 返回的数组里面不包括$end;

实例:
print_r( range(1,10,2))

return : array(1,3,5,7,9);

语法结构2:
range(char $star ,char $end [,int $step])
创建一个键值为字符的索引数组;
需要注意的是字符的范围不仅仅是52个大小写英文字母,同时还包括 [ \ ] ^ _` 这5个字符;

实例:
print_r(range('Z','a'))

return : array('Z','[','',]'','^','_','`','a');


explode()
把字符串转化为索引数组;

语法结构1:
explode(str $separator, str $str)
把字符串按照 str $separator 分割成数组返回;

实例:
$str_name = 'bill&tom&jack&david';
explode('&',$str_name)
return array('bill','tom','jack','david')

语法结构2:
explode(str $separator, str $str, int $length);
int $length >= 0 把字符串按照 int $length 分割成指定长度的数组返回;

int $length <=0 把字符串全部充分分割成数组后,返回 减去 int $length;个元素后的数组;

实例:
$str_name = 'bill&tom&jack&david';
explode('&',$str_name,0) => return array('bill&tom&jack&david');
explode('&',$str_name,3) => return array('bill','tom','jack&david');
explode('&',$str_name,-1)=> return array('bill','tom','jack')

相关:
implode(str $connector ,array $array) return string;


你可能感兴趣的:(PHP 能够创建数组的方法)