Array_merge()当出现下标相同的元素时:如果是索引下标相同,则会将后边的数组($arr2)元素的下标按照$arr1的下标做递增,实现合并。如果是关联下标相同,则后边的元素将覆盖前边的元素的值。
$arr1 = array('a', 'b', 'c', 'd'); $arr2 = array('i', 'ii', 'iii', 'iv'); $arr3 = array('a' => 1, 'b' => 2, 'c'=> 3, 'd'=>4); $arr4 = array('a' => 'one', 'b' => 'two', 'c' => 'three'); var_dump($arr1 + $arr2); echo '
'; var_dump($arr1 + $arr3); echo '
'; var_dump(array_merge($arr1, $arr2)); echo '
'; var_dump(array_merge($arr1, $arr3)); echo '
'; var_dump(array_merge($arr3, $arr4));
当数组中存在相同的键值对时 就认为是相等的。元素个数相同,并且每个元素的下标与值相同。
$arr5 = array('a' => 1, 'b' => 2); $arr6 = array(1, 2);//0=>1 1=>2 $arr7 = array('b' => 2, 'a' => 1); var_dump($arr5 == $arr6);//false var_dump($arr6 == $arr7);//false var_dump($arr5 == $arr7);//true var_dump($arr5 === $arr7);//false
===全等, 在相等的基础上,同时要求元素的顺序也相同。
var_dump($arr5 == $arr7);//true == var_dump($arr5 === $arr7);//false ===
创建一个数组,需要包含,所有的字母和数字(不要0)。
//制作所有可能的字符的集合 $chars = array_merge(range('a', 'z'), range('A', 'Z'), range(1, 9));
Array_rand();从数组中随机的取得一个或多个单元。取得的是随机的下标,不是随机的元素值。如果需要取得随机的元素值,需要利用随机的下标,再获取相对的值。
Array_rand($arr, $n); //随机的取得4个元素下标 $rand_keys = array_rand($chars, 4);
取得 $chars数组中 随机的4个元素值:
//打乱顺序 shuffle($rand_keys);//打乱 //遍历所有的下标,然后取得对应的字符 foreach($rand_keys as $key) { // echo $key, ' '; echo $chars[$key], ' '; }
Shuffle() 将数组元素的顺序打乱:
//打乱顺序 shuffle($rand_keys);//打乱
验证码的字符:
//制作所有可能的字符的集合 $chars = array_merge(range('a', 'z'), range('A', 'Z'), range(1, 9)); //随机的取得4个元素下标 $rand_keys = array_rand($chars, 4); //打乱顺序 shuffle($rand_keys);//打乱 //遍历所有的下标,然后取得对应的字符 foreach($rand_keys as $key) { // echo $key, ' '; echo $chars[$key], ' '; }
Array_combine($arr1, $arr2) 合并生成数组,但是是使用第一个数组元素的值作为新数组的下标,而使用第二个数组元素的值作为新数组的元素的值。
$arr2 = array('a', 'b', 'c'); $arr3 = array('i', 'ii', 'iii'); var_dump(array_combine($arr2, $arr3)); //array(3) { ["a"]=> string(1) "i" ["b"]=> string(2) "ii" ["c"]=> string(3) "iii" } echo '
';
$arr1 = array('a' => 1, 'b' => 2, 3, 4); var_dump(array_flip($arr1)); //array(4) { [1]=> string(1) "a" [2]=> string(1) "b" [3]=> int(0) [4]=> int(1) } echo '
';
In_array();检查 值是否存在
$arr1 = array('a' => 1, 'b' => 2, 3, 4); var_dump(array_key_exists('a', $arr1));//true echo ' '; var_dump(in_array('a', $arr1));//false echo ' ';
$arr1 =array('a', 'b', 'c', 'd', 'e'); var_dump(array_chunk($arr1, 2)); //array(3) { [0]=> array(2) { [0]=> string(1) "a" [1]=> string(1) "b" } [1]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "d" } [2]=> array(1) { [0]=> string(1) "e" } }
Extract(); 将数组元素注册到当前的变量列表中,以元素的下标作为变量名,以元素值作为变量的值。返回值为 注册到变量列表中的变量的数量,因为并不是所有的元素都可以被注册成变量的,取决于元素的下标是否是一个合法的变量名规则。
$arr2 = array('a' => 'i', 3=>'ii', 'c'=>'iii'); var_dump($a);//输出变量a的值 NULL var_dump(extract($arr2)); var_dump($a, $c); //string(1) "i" string(2) "ii" string(3) "iii"
Explode(), 将一个字符串分割成数组。
$str1 = __DIR__; var_dump($str1); echo ' '; var_dump(explode('\\', $str1)); //array(5) { [0]=> string(2) "E:" [1]=> string(3) "amp" [2]=> string(6) "apache" [3]=> string(6) "htdocs" [4]=> string(4) "test" } //一个老师教多门课 $teacher = array( 'name'=>'xiaowang', 'subjects' => '数学-语文-物理' ); var_dump(explode('-', $teacher['subjects'])); //array(3) { [0]=> string(6) "数学" [1]=> string(6) "语文" [2]=> string(6) "物理" }
Implode(), 将一个数组元素链接成一个字符串。
$subjects = array('数学', '物理', '化学', '体育'); var_dump(implode('-', $subjects)); //string(27) "数学-物理-化学-体育
交集 并集 差集
array_diff 差集:
$arr1 = array('a', 'b', 'c', 'd'); $arr2 = array('b', 'd', 'e', 'f'); var_dump(array_diff($arr1, $arr2)); //array(2) { [0]=> string(1) "a" [2]=> string(1) "c" } echo ' ';
Array_intersect()交集:
$arr1 = array('a', 'b', 'c', 'd'); $arr2 = array('b', 'd', 'e', 'f'); var_dump(array_intersect($arr1, $arr2)); //array(2) { [1]=> string(1) "b" [3]=> string(1) "d" }
Array_push() 入栈 返回值 为入栈后数组的元素个数
$arr = array('a', 'b', 'c'); //入栈 var_dump(array_push($arr, 'd')); //int(4) var_dump($arr); //array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" }
Array_pop(); 出栈 返回值为弹出的元素的值。
//出栈 var_dump(array_pop($arr)); //string(1) "c" var_dump($arr); //array(2) { [0]=> string(1) "a" [1]=> string(1) "b" }
$arr = array(); array_push($arr, 'a', 'b', 'c'); var_dump($arr); echo ' '; var_dump(array_shift($arr)); //string(1) "a" var_dump($arr); //array(2) { [0]=> string(1) "b" [1]=> string(1) "c" }
Sort() 按照数组元素的值对数组进行排序:
$arr = array(10, 20, 6, 8, 11); sort($arr); var_dump($arr);
Natsort
$arr2 = array('img1.jpg', 'img2.jpg', 'img11.jpg'); sort($arr2); var_dump($arr2); //array(3) { [0]=> string(8) "img1.jpg" [1]=> string(9) "img11.jpg" [2]=> string(8) "img2.jpg" } $arr2 = array('img1.jpg', 'img2.jpg', 'img11.jpg'); natsort($arr2); var_dump($arr2); //array(3) { [0]=> string(8) "img1.jpg" [1]=> string(8) "img2.jpg" [2]=> string(9) "img11.jpg" }