在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量,这时候你可以把数据作为元素存储在数组中。数组中的元素都有自己的 ID,因此可以方便地访问它们。

关联数组

关联数组,它的每个 ID 键都关联一个值。在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。通过关联数组,我们可以把值作为键,并向它们赋值。

这里介绍10个操作PHP关联数组的技巧,熟练运用能帮助你提高开发效率。

1、添加数组元素

PHP是一种弱类型语言,这意味着你不需要显示声明一个数组及其大小,相反,你可以同时声明并填充数组。

$capitals = array(

'Alabama' => 'Montgomery',

'Alaska' => 'Juneau',

'Arizona' => 'Phoenix'

);

额外的数组元素可以象下面这样追加:

$capitals['Arkansas'] = 'Little Rock';

如果你正在处理数字索引数组,你可能想使用显示命名的函数前置和追加元素,如array_push()和array_unshift()函数,但这些函数不能操作关联数组。

2、删除数组元素如果要从数组中删除一个元素,请使用unset()函数,如:

unset($capitals['California']);

使用数字索引数组时,删除数组元素的办法更多,更灵活,可以使用array_shift()和array_pop()函数分别从数组的开头和末尾删除一个元素。

3、交换键和值假设你想创建一个名叫$states的新数组,使用州府作为索引,使用州名作为关联值,使用array_flip()函数很容易完成这个任务。

$capitals = array(

'Alabama' => 'Montgomery',

'Alaska' => 'Juneau',

'Arizona' => 'Phoenix'

);

$states = array_flip($capitals);

// $states = array(

// 'Montgomery' => string 'Alabama',

// 'Juneau' => string 'Alaska',

// 'Phoenix' => string 'Arizona'

// );

4、合并数组假设前面的数组由一个基于Web的“FlashCard”服务使用,你想提供一种方法测试学生对美国各州首府的掌握情况,你可以使用array_merge()函数合并包含州和首府的数组。

$stateCapitals = array(

'Alabama' => 'Montgomery',

'Alaska' => 'Juneau',

'Arizona' => 'Phoenix'

);

$countryCapitals = array (

'Australia' => 'Canberra',

'Austria' => 'Vienna',

'Algeria' => 'Algiers'

);

$capitals = array_merge($stateCapitals, $countryCapitals);

5、编辑数组值

假设在数组中的数据包含大小写错误,在插入到数据库之前,你想纠正这些错误,你可以使用array_map()函数给每个数组元素应用一个回调。

function capitalize($element)

{

$element = strtolower($element);

return ucwords($element);

}

$capitals = array(

'Alabama' => 'montGoMEry',

'Alaska' => 'Juneau',

'Arizona' => 'phoeniX'

);

$capitals = array_map("capitalize", $capitals);

6、按键对数组排序FlashCard程序常常使用各种排序,如按字母顺序排序,你可以使用ksort()函数按键对关联数组进行排序。

$capitals = array(

'Arizona' => 'Phoenix',

'Alaska' => 'Juneau',

'Alabama' => 'Montgomery'

);

ksort($capitals);

因为数组是通过参数传递给ksort()函数的,意味着你不再需要将排序结果分配给另一个变量。

7、随机数组排序在FlashCard程序中还涉及到另一种随机排序技术,这时你要使用shuffle()函数实现数组项目的随机排序。

$capitals = array(

'Arizona' => 'Phoenix',

'Alaska' => 'Juneau',

'Alabama' => 'Montgomery'

);

shuffle($capitals);

如果不需要打乱数组顺序,你只是想随机选择一个值,那么使用array_rand()函数即可。

8、确定键和值是否存在你可以使用in_array()函数确定一个数组元素是否存在。

$capitals = array(

'Arizona' => 'Phoenix',

'Alaska' => 'Juneau',

'Alabama' => 'Montgomery'

);

if (in_array("Juneau", $capitals))

{

echo "Exists!";

} else {

echo "Does not exist!";

}

很少有人知道这个函数也可以确定一个数组键是否存在,在这一点上,它和array_key_exists()函数的功能一样。

$capitals = array(

'Arizona' => 'Phoenix',

'Alaska' => 'Juneau',

'Alabama' => 'Montgomery'

);

if (array_key_exists("Alaska", $capitals))

{

echo "Key exists!";

} else {

echo "Key does not exist!";

}

9、搜索数组你可能想搜索数组资源,这样用户就可以方便地用一个特定的州府检索关联的州,可以通过array_search()函数实现数组搜索。

$capitals = array(

'Arizona' => 'Phoenix',

'Alaska' => 'Juneau',

'Alabama' => 'Montgomery'

);

$state = array_search('Juneau', $capitals);

// $state = 'Alaska'

10、标准PHP库标准PHP库(Standard PHP Library,SPL)为开发人员提供了许多数据结构,迭代器,接口,异常和其它以前PHP语言没有的功能,使用这些功能可以通过面向对象的语法遍历数组。

$capitals = array(

'Arizona' => 'Phoenix',

'Alaska' => 'Juneau',

'Alabama' => 'Montgomery'

);

$arrayObject = new ArrayObject($capitals);

foreach ($arrayObject as $state => $capital)

{

printf("The capital of %s is %s
", $state, $capital);

}

// The capital of Arizona is Phoenix

// The capital of Alaska is Juneau

// The capital of Alabama is Montgomery

以上就是10个必须掌握的PHP关联数组使用技巧,希望对大家的学习有所帮助。

php去掉关联数组,大家都应该掌握的PHP关联数组使用技巧相关推荐

  1. php 交换函数,php用于反转/交换数组中的键名和对应关联的键值的函数array_flip()...

    实例 反转数组中的键名和对应关联的键值:<?php $a1=array("a"=>"red","b"=>"gre ...

  2. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名

    引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...

  3. golang的基本数据类型和数组默认都是值传递的

    基本数据类型和数组默认都是值传递的,即进行值拷贝.在函数内修改,不会影响到原来的值. 以值传递方式的数据类型,如果希望在函数内的变量能修改函数外的变量,可以传入变量的地址&,函数内以指针的方式 ...

  4. mysql 查询二维数组_sql数据库查询结果存入二维数组,结果都是0?求帮助

    SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select top 10 工件材料,主偏角,前角,刀具直径,刀齿数,铣削速度,铣 ...

  5. JavaScript 数组你都掰扯不明白,还敢说精通 JavaScript ?| 赠书

    作者 | 哪吒 来源 | CSDN博客 最近小编在看文章的时候,总有很多刚刚入门的小白说精通这个,精通那个技术,更有意思的是,最近看到一则简历上说精通 JavaScript ,聊一聊发现数组还不明白, ...

  6. java基数排序 数组_万字长文带你掌握Java数组与排序,代码实现原理都帮你搞明白!...

    查找元素索引位置 基本查找 根据数组元素找出该元素第一次在数组中出现的索引 public class TestArray1 { public static void main(String[] arg ...

  7. 数组里面都是人的名字,分割成:例如:老杨|老苏|老邹…”(老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马)

    //数组里面都是人的名字,分割成:例如:老杨|老苏|老邹-"(老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马) string[] names = {"老杨"," ...

  8. 树状数组求逆序对_初识树状数组

    树状数组是用来解决数列多次单点修改和前缀和查询的利器. 首先我们来看问题的原型: 已知一个长度为n(n<=10 0000)的数列,初始值都是零,现在我们要对数列施加两种类型的操作共q(q< ...

  9. golang json转结构体中嵌套多个数组_ElasticSearch第六篇:复合数据类型-数组,对象...

    在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON ...

最新文章

  1. 一、【绪论】数据结构的基本概念
  2. Struts2的下载安装
  3. PHP基础知识(三)
  4. 从知识图谱到事理图谱 | CNCC 2017
  5. linux android sdk gengxinman,Android 实现增量更新
  6. puppy linux中文设置,Puppy Linux 中文支持包制作方法
  7. react实现全选和反选_全选的实现
  8. 大规模图嵌入 示例_ICLR 2020 | 基于谱方法的高效多级图嵌入框架
  9. Recursive Depth first search graph(adj matrix)
  10. iOS 不同数据类型存入可变数组
  11. 富士施乐打印机双面打印设置方法
  12. springboot整合mysql数据库_springBoot 集成Mysql数据库
  13. Arcgis3_地图符号制作与地图数据符号化
  14. 【计算机网络实验】DHCP报文捕获和分析
  15. 图论,回路,旅行商、邮递员问题。
  16. PID调节规律各自的特点
  17. linux下HTK安装说明
  18. 数据库和数据仓库联系和区别
  19. cad自动填写页码lisp,CAD 中 如何自动添加页码?
  20. ​在职场,我们如果高效地沟通

热门文章

  1. 计算及图形学——实验四
  2. 公有云私有云的区别_私有云 vs. 公有云:谁更安全?
  3. golang mysql加锁_使用golang实现类InnoDB数据行锁效果
  4. GLSL Optimizer
  5. Graph Valid Tree
  6. 路由器再度躺枪:主流厂商设备中被发现后门
  7. note同步不及时 one_Win10上OneNote 2016同步老出问题?解决方法送上
  8. python面试常问题解答_10个Python面试常问的问题
  9. cuid卡写入后锁死_CUID卡,CUID白卡,CUID门禁卡,CUID电梯卡,CUID可改写卡
  10. Java并发编程实战_不愧是领军人物!这种等级的“Java并发编程宝典”谁能撰写?...