10、切割数组
array_slice(array, offset, length);返回一个由原始数组中的连续元素组成的新数组,参数1为原始数组,参数2为要复制的起始位置, 参数3要复制的个数;新数组的键值从0开始
$people = array("tom", "dick", "jo", "jim", "alic");
$middle = array_slice($people, 2, 2); //$middle是array("jo", "jim");
一般来说,只有在索引数组上使用array_slice()才有意义
11、数组分块
把数组分为小数组或固定大小的数组,可以使用array_chunk()函数;
$chunks = array_chunk(array, size [, preserve_keys]);
$nums = range(1, 7);
$rows = array_chunk($nums, 5);
print_r($rows); //Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) [1] => Array ( [0] => 6 [1] => 7 ) )
12、键(Key)和值(Value)
array_keys() 函数根据内部顺序返回一个仅由数组中的键组成的数组
array_values() 函数根据内部顺序返回一个仅由数组中的值组成的数组(较少使用)
13、在数组中删除和插入元素
array_splice() 在数组中删除和插入元素,并且可以用被删除的元素创建另一个数组
array_splice(array, start [, length [, replacement] ]);
ps:$subjects = array("tom", "jim", "cherry", "alice", "gina", "lilei”, "lucy");
$removed = array_splice($subjects, 2, 3);
//$removed 是array("cherry", "alice", "gina");
//$subjects 是array("tom", "jim", "lilei", "lucy");
如果省略length参数,array_splice()将删除到数组末尾;
如果只是简单地删除原数组中的元素,而不关心他们的值,则不需要将array_splice()的结果赋值给变量
要在被删除的元素的位置插入新的元素,应ongoing第4个参数;
$new = array("one", "two", "three");
array_splice($subjects, 4, 3, $new); //$subjects是array_splice("tom", "jim", "cherry", "one", "two", "three");
替换数组的元素个数不需要和被删除元素的数目相同,数组可以按需要增加或减少
$subjects = array("tom", "jim", "alice");
$new = array("cherry", "gina");
array_splice($subjects, 2, 0, $new); //$subjects 是array("tom", "jim", "cherry", "gina", "alice");
14、数组和变量间的转换
php提供了两个函数extract() 和 compact(), 用于数组和变量之间的转换,变量的名字对应数组中的键名,变量的值为数组中的赋值;
从数组创建变量
extract(array, [EXTR_PREFIX_ALL, "str"]);
$person = array('name' => "tom", 'age' => 35, 'wife' => "lucy");
extract($person);
可以转换成下面的变量:
$name = "tom";
$age = 35;
$wife ="lucy";
如果加了第二个参数:
$str_name = "tom";
$str_age = 35;
$str_wife = "lucy";
从变量创建数组:
compact() 函数和extract()函数正好相反,将多个变量名或单个数组作为参数传给compact(),可以合并出一个新的数组
$color = "yellow";
$shape = "curvy";
$floppy = "none";
$a =compact("color", "shape", "floppy");