PHP 数组函数练习

  1 <?php
  2     header("content-type:text/html;charset=uft-8");
  3     $arr = array(
  4         ‘a‘ => 1,
  5         ‘B‘ => 2,
  6     );
  7     $arr = array_change_key_case($arr,CASE_UPPER);
  8     echo "array_change_key_case: CASE_UPPER ...CASE_LOWER the same as CASE_UPPER<pre>";
  9     print_r($arr);
 10     echo "</pre><br/>";
 11
 12     $arr = array(
 13         ‘a‘ => 1,
 14         ‘v‘ => 2,
 15         ‘c‘ => 3,
 16         ‘d‘ => 4,
 17         ‘e‘ => 5,
 18     );
 19     //对数组进行分块,是否保留原有的key,array_chunk($inputs,$size[,bool $preserve_key])
 20     echo "array_chunk: <pre>";
 21     print_r(array_chunk($arr, 2 , true));
 22     echo "</pre><br/>";
 23
 24     //对key和value进行组合,两个数组的个数要相同,不然会爆warning
 25     $a = array(‘1‘,‘2‘,‘3‘,‘4‘);
 26     $b = array(‘a‘,‘b‘,‘c‘,‘d‘);
 27     echo "array_combine: <pre>";
 28     print_r(array_combine($a, $b));
 29     echo "</pre><br/>";
 30
 31     //对数组中的value进行计算
 32     $arr = array(
 33         ‘a‘ => 1,
 34         ‘v‘ => 2,
 35         ‘c‘ => 3,
 36         ‘d‘ => 4,
 37         ‘e‘ => 5,
 38         ‘as‘ => 1,
 39     );
 40     echo "array_count_values: <pre>";
 41     print_r(array_count_values($arr));
 42     echo "</pre><br/>";
 43
 44     //对数组进行差集计算,计算出包含在$a中,而不在其他参数数组中的值,判断条件为 (string)elem1 == (string)elem2
 45     $a = array(1,2,3,4);
 46     $b = array(1,2);
 47     echo "array_diff: <pre>";
 48     print_r(array_diff($a,$b));
 49     echo "</pre><br/>";
 50
 51     //对数组进行差集计算,计算出包含在$a中,而不在其他参数数组中的值,判断条件为 (string)key1 == (string)key2,(string)values1 == (string)values2
 52       $a = array("red" => 1,"black" => 2 , 1 => 2);
 53     $b = array("red" => 1, "1" => "3");
 54     echo "array_diff_assoc: <pre>";
 55     print_r(array_diff_assoc($a,$b));
 56     echo "</pre><br/>";
 57
 58     //对数组进行差集计算,计算出包含在$a中,而不再其他参数数组中的值,判断条件为 (string)key1 == (string)key2
 59     $a = array("red" => 1,"black" => 2 , 1 => 2);
 60     $b = array("red" => 1, "1" => "3");
 61     echo "array_diff_key: <pre>";
 62     print_r(array_diff_key($a, $b));
 63     echo "</pre><br/>";
 64
 65     //对数组进行差集计算,计算出包含在$a中,而不在其他参数数组中的值,判断条件为 (string)key1 == (string)key2,(string)values1 == (string)values2
 66     function my_array_diff_uassoc($a,$b){
 67         if($a == $b){
 68             return 0;
 69         }
 70         return $a > $b ? 1 : -1;
 71     }
 72     $a = array("red" => 1,"black" => 2 , 1 => 2);
 73     $b = array("red" => 1, "1" => "2");
 74     echo "array_diff_uassoc :<pre>";
 75     print_r(array_diff_uassoc($a,$b,"my_array_diff_uassoc"));
 76     echo "</pre><br/>";
 77
 78     //对数组进行差集计算,计算出包含在$a中,而不再其他参数数组中的值,判断条件为 (string)key1 == (string)key2
 79     function my_array_diff_ukey($a,$b){
 80         if($a == $b){
 81             return 0;
 82         }
 83         return $a > $b ? 1 : -1;
 84     }
 85     $a = array("red" => 1,"black" => 2 , 1 => 2);
 86     $b = array("red" => 1);
 87     $c = array("1" => "2");
 88     echo "array_diff_ukey: <pre>";
 89     print_r(array_diff_ukey($a, $b,$c,"my_array_diff_ukey"));
 90     echo "</pre><br/>";
 91
 92     //array_fill ,对数组给定的值  array_fill($start,$size,$value);  $start => 下标开始位置,$size给定数组大小,$value => 数值
 93     echo "array_fill: <pre>";
 94     print_r(array_fill(1,10,"banana"));
 95     echo "</pre><br/>";
 96
 97     //array_fill_keys,组合一个数组,key可以自己定义,every key => $value ....
 98     echo "array_fill_keys:<pre>";
 99     $keys = array(‘hello‘,2,3,‘foo‘);
100     $value = array(1,2,3,4);
101     print_r(array_fill_keys($keys,‘111‘));
102     echo "</pre><br/>";
103
104     //array_filter,自定义一个过滤函数,根据过滤的值得到返回参数
105     function my_array_filter($a){
106         return $a % 2;
107     }
108     $arr = array(1,2,3,0);
109     echo "array_filter: <pre>";
110     print_r(array_filter($arr,‘my_array_filter‘));
111     print_r(array_filter($arr));
112     echo "</pre><br/>";
113
114     //array_flip,将数组的key 和 value进行交换,3 => 5, 4 => 5会覆盖
115     $arr = array(1 => 2,3 => 5,4 => 5);
116     echo "array_flip: <pre>";
117     print_r(array_flip($arr));
118     echo "</pre><br/>";
119
120     //array_intersect,返回一个包含在$a中,同时出现中其他数组中的值
121     $a = array(1,2,3,4);
122     $b = array(1);
123     $c = array(1,2,3);
124     echo "array_intersect: <pre>";
125     print_r(array_intersect($a,$b,$c));
126     echo "</pre><br/>";
127
128     //array_intersect_assoc,返回一个包含在$a中,同时出现在其中数组中的值 判断条件为(string)key1 == (string)key2 , (string)value1 ==  (string)value2
129      $a = array(1,2,3,4);
130     $b = array(1);
131     $c = array(‘0‘ => ‘1‘,2,3);
132     echo "array_intersect_assoc: <pre>";
133     print_r(array_intersect_assoc($a,$b,$c));
134     echo "</pre><br/>";
135
136     //array_intersect_key,返回一个包含在$a中同时出现在其他数组中key对应的值,(string)key1 == (string)key2
137     $a = array(‘a‘,‘b‘,‘c‘,‘d‘);
138     $b = array(1);
139     $c = array(2);
140     echo "array_intersect_key: <pre>";
141     print_r(array_intersect_key($a,$b,$c));
142     echo "</pre><br/>";
143
144     //array_intersect_uassoc 与array_intersect()不同的是,key用于回调函数,(string)value1 == (string)value2
145     $a = array(‘red‘ => ‘a‘,"black" => 2, ‘333‘ => 2);
146     $b = array(‘Red‘ => ‘a‘);
147     echo "array_intersect_uassoc: <pre>";
148     print_r(array_intersect_uassoc($a, $b, ‘strcasecmp‘));
149     echo "</pre><br/>";
150
151     //array_intersect_ukey  用回调函数来比较key
152     $a = array(‘red‘ => ‘a‘,‘black‘ => 2);
153     $b = array(‘RED‘ => ‘b‘);
154     echo "array_intersect_key: <pre>";
155     print_r(array_intersect_ukey($a, $b , ‘strcasecmp‘));
156     echo "</pre><br/>";
157
158     //array_keys  array_keys($a,5,true),$a 只返回 keys, search_value 返回对应value的key , bool strict,是否严格
159     $a = array(2,3,4,5,5);
160     echo "array_keys: <pre>";
161     print_r(array_keys($a,5,true));
162     echo "</pre><br/>";
163
164     //array_map
165     function my_array_map($a){
166         return $a * $a * $a;
167     }
168     $a = array(2,3,4,5,5);
169     echo "array_map: <pre>";
170     print_r(array_map(‘my_array_map‘,$a));
171     echo "</pre><br/>";
172
173     //array_merge
174     $a = array("0" => "red",‘re‘ => 1);
175     $b = array("0" => "yellow","re" => 2);
176     echo "array_merge: <pre>";
177     print_r(array_merge($a,$b));
178     echo "</pre><br/>";
179
180     //array_merge_recursive
181     $ar1 = array("color" => array("favorite" => "red"), 5);
182     $ar2 = array(10, "color" => array("favorite" => "green", "blue"));
183     $result = array_merge_recursive($ar1, $ar2);
184     echo "array_merge_recursive: <pre>";
185     print_r($result);
186     echo "</pre><br/>";
187
188     //array_multisort 对多维数组进行排序,或者多个数组排序
189     $data[] = array(‘volume‘ => 67, ‘edition‘ => 2);
190     $data[] = array(‘volume‘ => 86, ‘edition‘ => 1);
191     $data[] = array(‘volume‘ => 85, ‘edition‘ => 6);
192     $data[] = array(‘volume‘ => 98, ‘edition‘ => 2);
193     $data[] = array(‘volume‘ => 86, ‘edition‘ => 6);
194     $data[] = array(‘volume‘ => 67, ‘edition‘ => 7);
195     $v = array();
196     $e = array();
197     foreach ($data as $key => $value) {
198         $v[] = $value[‘volume‘];
199         $e[] = $value[‘edition‘];
200     }
201     array_multisort($v,SORT_ASC,$e,SORT_ASC,$data);
202     echo "array_multisort: <pre>";
203     print_r($data);
204     echo "</pre><br/>";
205
206     //array_pad   一个数组填充函数,对数组进行填充,array_pad($inputs,$size,$pad_value) ....size > 0 ,在右侧填充,size < 0 在左侧填充, abs($size) > count($inputs) 否侧不填充
207     $arr = array(2,3,4);
208     $inputs = array_pad($arr,-10,"no");
209     echo "array_pad: <pre>";
210     print_r($inputs);
211     echo "</pre><br/>";
212
213     //array_pop ....出栈,长度减去1,返回出栈元素
214     $arr = array(1,2,4);
215     echo "array_pop: <pre>";
216     print_r(array_pop($arr));
217     echo "</pre><br/>";
218
219
220     //array_product 计算数组中元素的乘积
221     $arr = array(1,2,3,4);
222     echo "array_product: <pre>";
223     print_r(array_product($arr));
224     echo "</pre><br/>";
225
226     //array_sum 计算数组中元素的和
227     $arr = array(1,2,3,4);
228     echo "array_sum: <pre>";
229     print_r(array_sum($arr));
230     echo "</pre><br/>";
231
232     //array_push 入栈,返回数组单元总数
233     $arr = array(1,2,3,4);
234     echo "array_psuh: <pre>";
235     print_r(array_push($arr, 6,5));
236     echo "</pre><br/>";
237
238     //array_rand 随机抽取数组中的size个 array_rand($inputs,$size)   $inputs为数组
239     $arr = array(1,2,3,4);
240     echo "array_rand: <pre>";
241     print_r(array_rand($arr,count($arr) - 1));
242     echo "</pre><br/>";
243
244     //array_reduce 用回调函数迭代将数组简化成单一的值
245     $arr = array(1,2,3);
246     function get_sum($v,$m){
247         return $v + $m;
248     }
249     echo "array_reduce: <pre>";
250     print_r(array_reduce($arr,‘get_sum‘));
251     echo "</pre><br/>";
252
253     //array_replace 函数使用后面数组元素的值替换第一个 array 数组的值。如果一个键存在于第一个数组同时也存在于第二个数组,它的值将被第二个数组中的值替换。如果一个键存在于第二个数组,但是不存在于第一个数组,则会在第一个数组中创建这个元素。如果一个键仅存在于第一个数组,它将保持不变。如果传递了多个替换数组,它们将被按顺序依次处理,后面的数组将覆盖之前的值。
254     $arr = array("orange","ping","juice","apple");
255     $replacement = array(‘111‘ => ‘222‘);
256     echo "array_replace: <pre>";
257     print_r(array_replace($arr,$replacement));
258     echo "</pre><br/>";
259
260     //array_reverse 将数组进行翻转
261     $arr = array("1" => 2,‘2‘ => ‘red‘);
262     echo "array_reverse: <pre>";
263     print_r(array_reverse($arr));
264     echo "</pre><br/>";
265
266     //array_search 查找值是否在数组中
267     $arr = array(‘222‘ => ‘111‘);
268     echo "array_search: <pre>";
269     print_r(array_search(‘111‘,$arr,true));
270     echo "</pre><br/>";
271
272     //array_shift 将数组开头的单元移出数组,返回第一个元素
273     $arr = array(‘a‘,2,3);
274     echo "array_shift: <pre>";
275     print_r(array_shift($arr));
276     echo "</pre><br/>";
277
278     //array_slice 从数组中提取一部分 array_slice($arr,$offset,$length[,bool $preserve_key]);
279     $inputs = array(‘a‘,‘b‘,4 => ‘c‘,‘d‘);
280     echo "array_slice: <pre>";
281     print_r(array_slice($inputs,2,2,true));
282     echo "</pre><br/>";
283
284     //array_splice 用数组去代替原数组中的一部分 array_splice($inputs,$offsets[[,$length,],$resplacement])
285     $input = array("red", "green", "blue", "yellow");
286     array_splice($input, 1 , 2,‘dsadsa‘);
287     echo "array_splice: <pre>";
288     print_r($input);
289     echo "</pre><br/>";
290
291     //array_unique 当且仅当 (string)value1 == (string)value2,保留第一个值
292     $arr = array(1,2,3,‘2‘,‘3‘);
293     echo "array_unique: <pre>";
294     var_dump(array_unique($arr));
295     echo "</pre><br/>";
296
297     //array_shift 在数组头加入一个或者多个单元
298     $arr = array(2,3,4);
299     $add = array(5,6);
300     array_unshift($arr, $add);
301     echo "array_unshift: <pre>";
302     print_r($arr);
303     echo "</pre><br/>";
304
305     //array_walk 对数组中的每个成员应用用户函数
306     function my_array_walk(&$v,$k,$str){
307         $v = $v . $k . $str;
308     }
309     $arr = array(‘red‘,‘black‘,‘blue‘,‘green‘);
310     echo "array_walk: <pre>";
311     array_walk($arr,‘my_array_walk‘,‘sss‘);
312     print_r($arr);
313     echo "</pre><br/>";
314
315     //array_walk_recursive 对数组中的每个成员应用用户函数
316     function my_array_walk_recursive($v,$k){
317         echo "$k holds $v<br/>";
318     }
319     $arr = array(‘red‘ => 1,‘black‘ => 2);
320     $bigarr = array(‘haha‘ => $arr,‘pink‘ => 3);
321     array_walk_recursive($bigarr, ‘my_array_walk_recursive‘);
322
323 ?>

自己练习而已,不喜勿喷。

时间: 2024-08-10 15:05:11

PHP 数组函数练习的相关文章

判断对象是否为数组/函数

打印Object的prototype属性: 有一个toString方法,不同于一般变量的toString方法,当Object的toString方法执行时: 1.获取当前对象的[[Class]]属性的值; 2.返回 "[object " + 第一步得出的值+ "]"格式的字符串,例如[object Array], 解析: [[Class]]是一种内部属性,所有的对象(原生对象和宿生对象)都拥有该属性,描述该对象的类型 (值得注意的是[[Class]]的值只能是Obje

数组函数

2016年11月22号 今天苦逼的学习了"几个"数组函数.不多也就30几个! 首先学习了 数组的指针:在每一个数组的内部,都有一个数组元素的指针,该指针负责指向数组内的某个元素,那么这个被指向的元素,就叫作"当前元素"!而他又有两个小弟,分别实现键和值:key:语法:key(数组名)作用:获取该数组当前元素的键!current:语法:current(数组名)作用:获取该数组当前元素的值! 然而,数组的指针不能永远只指向某个元素,应该将数组的指针在需要的时候下移一位!

PHP数组函数

数组函数: count: 返回数组的个数 explode: 把字符串切割为数组 join: 把数组连接为字符串 array_values:返回数组中的value值,组成一个新数组 array_keys :返回数组中的key值,组成一个新数组 array_pop : 删除数组中最后一组元素 list : 把数组中的值,赋值给对应的变量 next:数组中的指针往后移动一位 prev:数组中的指针往前移动一位 end:选取最后一个元素 in_array:判断数组中是否存在某个值 array_rever

自定义数组函数

// 自定义数组函数Array.prototype.maxima.//Array.prototype为必须的,maxima为数组名.//调用时arr.maxima()这样调用window.onload = function() { Array.prototype.sum = function(){ for(var sum = i = 0 ; i < this.length; i ++){ sum += parseInt(this[i]); } return sum; }; Array.proto

数组拷贝、数组函数、通过数组函数来模拟数据结构的栈和队列、回调的意义、数组函数的排序问题、算法以及寻找素数的筛选法

1.数组的拷贝数组拷贝时指针的指向问题. 数组在拷贝时,指针的位置随之复制[这一点拷贝是完全一样]但是如果拷贝的数组的指针是非法的,那么拷贝出新指针的位置进行初始化<?php$arr1=array('123');end($arr1);next($arr1);//这个指针非法$arr2 = $arr1;//这里进行数组的拷贝var_dump(current($arr2));//得到指向‘123’元素的指针var_dump(current($arr1));//此时这个数组的指针有问题?> 但是拷贝

labview学习之“创建数组”函数

“创建数组”函数 一.位置:“函数”-“编程”-“数组”-“创建数组” 其图标为: 图1 图标 二.简介: “创建数组”函数有两种模式,一种是“连接模式”,一种是“添加模式”. 如需切换两种模式,可右键单击“创建数组”函数,切换连接输入菜单项. “创建数组”函数默认输入端数量为1.如需添加输入,可右键单击该函数并从菜单中选择添加输入,或者调整函数的大小. (1)在连接模式下,输入可以同时包含n维数组.n-1维数组(n>0).“创建数组”函数通过连接输入数组的每个元素得到一个n维数组. (2)在添

js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScript使用push方法添加一个元素到数组末 JavaScript数组函数unshift、shift、pop、push使用

push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( item1 [,items... ] )参数 参数 描述item1 任意类型添加到当前数组末尾处的元素.items 可选参数/任意类型要添加到当前数组末尾处的其他项,可以有多个.注意:如果添加的元素类型为数组类型(Array),仍然会被当作一个元素看待,只是这个元素是数组类型而已.如果要合并两个数组,请使

数组、多维数组和数组函数

1.数组的基本写作格式 (1). array ("AA","BB","CC","DD"); (2). array ("AA"=>"11","BB"=>"22"); 2.数组的创建.修改.删除.使用 <?php $arr=array(array("AA","BB","CC"

【风马一族_php】数组函数

原文来自:http://www.cnblogs.com/sows/p/6045699.html (博客园的)风马一族 侵犯版本,后果自负  2016-11-09 15:56:26 数组 函数 php--数组的尝鲜事例 array_change_key_case - 返回字符串键名全为小写或大写的数组 语法:array_change_key_case(数组名); php-->修改数组的键名(下标)的字母大小写 array_chunk - 将一个数组分割成多个 语法:array_chunk(数组名,

[转] 有趣的JavaScript原生数组函数

在JavaScript中,可以通过两种方式创建数组,Array构造函数和 [] 便捷方式, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typeof操作符返回‘object’而不是‘array’.然而执 行[] instanceof Array返回true.此外,还有类数组对象使问题更复杂,如字符串对象,arguments对象.arguments对象不是Array的实例,但却 有个length属性,并且值能通过索引获取,所以能像数组一样通过循环操作. 在本文中,