Blogger Information
Blog 40
fans 0
comment 1
visits 39776
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组函数处理
Dong.
Original
675 people have browsed it

1.栈与队列

含义:尽管在PHP中允许直接访问某个数组单元,但PHP仍提供了各种有趣的方式来处理数组。特别要说的是,某些函数使PHP数组非常容易的实现了一个栈或队列。

1.1 什么是栈

栈:后进先出(LIFO-last in first out):最后插入的元素最先出来
栈的插入操作array_push()叫做进栈,删除操作array_pop()叫做出栈。

1.1.1 进栈操作 array_push()

  1. // 进栈操作:在数组尾部添加元素,返回数组新的长度
  2. echo '数组新的长度:'.array_push($stack, 4, 5, 6).'
  3. ';
  4. // 输出:6
  5. print_r($stack);
  6. // 打印新数组:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
1.1.2 出栈操作 array_pop()

  1. //出栈操作:第1次删除最后一个元素,返回最后删除元素(先进后出)
  2. echo '第1次出栈:'.array_pop($stack).'
  3. ';
  4. // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
  5. //第2次出栈
  6. echo '第2次出栈:'.array_pop($stack).'
  7. ';
  8. // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
  9. //第3次出栈
  10. echo '第3次出栈:'.array_pop($stack).'
  11. ';
  12. // Array ( [0] => 1 [1] => 2 [2] => 3 )
  13. //.....如果数组是空的,或者非数组,将返回 NULL。

1.2 什么是队列

含义:先进先出(FIFO-first in first out):最先插入的元素最先出来。
在具体应用中通常用链表或者数组来实现;
队列只允许在后端进行插入操作array_unshift(),在前端进行删除操作array_shift()。

1.2.1 元素进入队列操作array_unshift()

  1. // 向数组插入多个新元素。插入的值将按顺序放置到数组的开头
  2. echo array_unshift($queue,4,5,6);
  3. // 输出:6
  4. print_r($queue);
  5. // 打印新数组:Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 1 [4] => 2 [5] => 3 )
1.2.1 取出队列首元素操作array_unshift()

  1. //取出队列操作:第1次删除首元素,返回删除首元素(先进先出)
  2. echo '第1次取出队列首元素:'.array_shift($queue).'
  3. ';
  4. // Array ( [0] => 5 [1] => 6 [2] => 1 [3] => 2 [4] => 3 )
  5. //第2次出栈
  6. echo '第2次取出队列首元素:'.array_shift($queue).'
  7. ';
  8. // Array ( [0] => 6 [1] => 1 [2] => 2 [3] => 3 )
  9. //第3次出栈
  10. echo '第3次取出队列首元素::'.array_shift($queue).'
  11. ';
  12. // Array ( [0] => 1 [1] => 2 [2] => 3 )

队列的作用:

  1. 对列的作用:队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。

2. 数组的键/值操作

2.1 键操作

  1. // 定义一个数组
  2. $arr = ['id'=1,'name'='小明','age'='18'];

2.2 获取键名操作

2.2.1 循环方法获取键名
  1. //方法1:循环得到键名
  2. while ( key($arr)) {
  3. $arr_key[] = key($arr);
  4. next($arr);
  5. }
  6. print_r($arr_key);
  7. //输出结果: Array ( [0] => id [1] => name [2] => age )
2.2.2 使用array_keys()获取键名

  1. //方法2:使用 array_keys() 函数
  2. $arr_key=array_keys($arr);
  3. print_r($arr_key);
  4. //输出: Array ( [0] => id [1] => name [2] => age )

2.3 值操作

2.3.1 通过循环获得所有值
  1. //方法1:循环得到所有值
  2. foreach ($arr as $value) {
  3. $values[] = $value;
  4. }
  5. print_r($values);
  6. //输出:Array ( [0] => 1 [1] => 小明 [2] => 18 )
2.3.2 使用array_values()函数获得所有值

  1. //方法2:使用 array_values() 函数
  2. $values=array_values($arr);
  3. print_r($values);
  4. //输出:Array ( [0] => 1 [1] => 小明 [2] => 18 )

3. 数组常用函数

3.1 array():用于创建数组

  1. // 创建数组
  2. $stu = array('jack','male',30);
  3. print_r($stu); // 输出 Array ( [0] => jack [1] => male [2] => 30 )
  4. // 实际操作中,往往会省略这个函数,用中括号代替
  5. $stu = ['alice','female',20];
  6. print_r($stu); // 输出 Array ( [0] => alice [1] => female [2] => 20 )

3.2 count():计算并返回数组的长度

  1. echo count([1,2,3,4,5,6,7,8,9,10]); // 返回 10
  2. echo count([1,2,3,true,NULL,'88']); // 返回 6
  • 与值相关的

3.3 array_values():返回数组中所有的值,并返回一个新的索引数组

  1. $pets = ['dog' => '旺财', 'cat' => '花花', 'pig' => '佩奇'];
  2. print_r(array_values($pets));
  3. // 输出 Array ( [0] => 旺财 [1] => 花花 [2] => 佩奇 )

3.4 array_search():找到数组中含有指定值得键名并返回,若找不到,返回false

  1. $pets = ['dog' => '旺财', 'cat' => '花花', 'pig' => '佩奇'];
  2. echo array_search('佩奇',$pets) ; // 输出 pig
  3. var_dump(array_search('佩奇22',$pets)) ; // 返回false
  4. // 该函数有第三个值,默认是false,若是true,表示搜索的值数据和类型都要一致,如下:
  5. $nums = ['a' => 10, 'b' => '10', 'c' => '10' ];
  6. // echo array_search(10,$nums,true); // 输出 a
  7. // echo array_search('10',$nums,true); // 输出 b ,表示只搜索一次,搜到了就返回了
  8. // 可以利用循环来搜索
  9. foreach( $nums as $keys => $values ){
  10. if($values === '10')
  11. echo $keys;
  12. } // 输出 bc
  • 与键相关的

3.5 array_keys():获取数组中的所有键名

  1. $cars = ['BMW' => 'X6', '丰田' => '卡罗拉', '长安' => '逸动', '现代' => '索拉塔'];
  2. // array_keys:获取数组中的所有键名,并返回一个新的数组
  3. print_r(array_keys($cars));
  4. // 输出 Array ( [0] => BMW [1] => 丰田 [2] => 长安 [3] => 现代 )

3.6 key():返回当前指针位置的键名

  1. $cars = ['BMW' => 'X6', '丰田' => '卡罗拉', '长安' => '逸动', '现代' => '索拉塔'];
  2. // key():返回当前指针位置的键名,默认从0开始
  3. echo key($cars); // 输出 BMW
  4. // next():指针下移
  5. next($cars);
  6. echo key($cars); // 输出 丰田

总结:

数组函数并未全部举例,数组函数可以相互嵌套,需要灵活运用,剩下的其余函数还需课下多多书写,加深印象

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:很用心, 放一些一截图, 有助于读者了解,直观...
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post