PHP数组操作

1.shuffle将数组打乱 <?php $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse"); shuffle($my_array); print_r($my_array); ?> 输出:Array ( [0] => Cat [1] => Horse [2] => Dog ) 2.array_chunk(array,size,preserve_key);函数把数组分割为新的数组块,其中每个数组的单元数目由sizee 参数决定,最后一个数组的单元数目可能会少几个。 <?php $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow"); print_r(array_chunk($a,2)); ?> Array ( [0] => Array ( [0] => Cat [1] => Dog ) [1] => Array ( [0] => Horse [1] => Cow ) ) 3.array_filter(array,function);函数用回调函数过滤数组中的元素,如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变。 <?php function myfunction($v) { if ($v==="Horse") { return true; } return false; } $a=array(0=>"Dog",1=>"Cat",2=>"Horse"); print_r(array_filter($a,"myfunction")); ?> 输出:Array ( [2] => Horse ) 4.array_slice() 函数在数组中根据条件取出一段值,并返回。注释:如果数组有字符串键,所返回的数组将保留键名。array_slice(array,offset,length,preserve); <?php $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird"); print_r(array_slice($a,1,2)); ?> 输出:Array ( [b] => Cat [c] => Horse ) 5.array_rand(array,number)函数从数组中随机选出一个或多个元素,并返回。 第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。 <?php $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); print_r(array_rand($a,2)); ?> 输出:Array ( [0] => c [1] => b ) 6.array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。注释:两个参数必须有相同数目的元素。 <?php $a1=array("a","b","c","d"); $a2=array("Cat","Dog","Horse","Cow"); print_r(array_combine($a1,$a2)); ?> 输出:Array ( [a] => Cat [b] => Dog [c] => Horse [d] => Cow ) 7.array_fill(start,number,value)函数用给定的值填充数组,返回的数组有 number 个元素,值为 value。返回的数组使用数字索引,从 start 位置开始并递增。如果 number 为 0 或小于 0,就会出错。 <?php $a=array_fill(2,3,"Dog"); print_r($a); ?> 输出:Array ( [2] => Dog [3] => Dog [4] => Dog ); 8.array_map(function,array1,array2,array3...)函数返回用户自定义函数作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。 <?php function myfunction($v) { if ($v==="Dog") { return "Fido"; } return $v; } $a=array("Horse","Dog","Cat"); print_r(array_map("myfunction",$a)); ?> 输出:Array ( [0] => Horse [1] => Fido [2] => Cat )

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-03-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木子昭的博客

Javascript实现完美继承实现javascript完美继承要考虑三个方面:

? 实现javascript完美继承要考虑三个方面: 第一步: 获取父构造函数体内的属性 解决方法: 通过 Father.call(this)实现(这里的t...

4066
来自专栏黑泽君的专栏

HashSet集合的add()方法的源码解析

1132
来自专栏ImportSource

为什么实现了equals()就必须实现hashCode()?

我们先来看下面这个简单的例子,然后运行她: class Person{ private String name; private int age; ...

3844
来自专栏ios 技术积累

Java 多态

●消除类型之间的耦合关系 ●可替换性 ●可扩充性 ●接口性 ●灵活性 ●简化性

1552
来自专栏恰同学骚年

你必须知道的指针基础-7.void指针与函数指针

  void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据。和用int表示指针异曲同工,只是更明确是“指针”。

1882
来自专栏女程序员的日常

Effective C++学习笔记之explicit

  explicit意思为“明确的”和“清楚的”,是C++的关键词,意在阻止隐式类型的转换;

822
来自专栏java学习

面试题61(关于继承多态的理解)

面试题61 2018年1月21日 ? 本期题目 (单选题)下列选项中哪一个是正确的? package Wangyi; class Base{ publi...

2905
来自专栏码生

python2 和 python3 中调用父类方法

先看第二种写法,就是 Animal 类通过 self 初始化了一个对象(实例、instance),然后让该对象调用器 init 方法。 第二种写法不难理解

1373
来自专栏个人随笔

那些年~~~我们的C#笔试内测题目

《深入.NET平台和C#编程》内部测试题-笔试试卷 一 选择题 1) 以下关于序列化和反序列化的描述错误的是( C)。 a) 序列化是将对象的状态存储到特定存储...

34711
来自专栏积累沉淀

Java HashCode详解

一、为什么要有Hash算法 Java中的集合有两类,一类是List,一类是Set。List内的元素是有序的,元素可以重复。Set元素无序,但元素不可重复。要想保...

1975

扫码关注云+社区