在使用PHP的开发过程中,迟早会需要创建许多类似的变量。这时,你可以将数据作为元素存储在数组中。数组中的元素都有自己的ID,因此可以轻松访问它们。关联数组每个ID键都与一个值关联的关联数组。在存储有关特定命名值的数据时,使用数值数组不是最佳做法。有了关联数组,我们就可以把值作为键,给它们赋值。这里有10种操作PHP关联数组的技巧。熟练使用可以帮助你提高开发效率。1.添加数组元素PHP是一种弱类型语言,这意味着您不需要显式声明数组及其大小。相反,您可以同时声明和填充数组。$capitals=array('Alabama'=>'Montgomery','Alaska'=>'Juneau','Arizona'=>'Phoenix');额外的数组元素可以像这样追加:11$capitals['Arkansas']='LittleRock';如果您正在处理数字索引数组,您可能希望使用明确命名的函数来添加和附加元素,例如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的数组组成的如果你想提供一种方法来测试学生对美国各州首府的知识,你可以使用array_merge()函数来合并包含州和首府的数组。$stateCapitals=array('Alabama'=>'Montgomery','Alaska'=>'Juneau','Arizona'=>'Phoenix');$countryCapitals=array('Australia'=>'Canberra','Austria'=>'维也纳','阿尔及利亚'=>'阿尔及尔');$capitals=array_merge($stateCapitals,$countryCapitals);5.编辑数组值假设数组中的数据包含大小写错误,在插入数据库之前,想要更正这些错误,可以使用array_map()函数对每个数组元素应用回调。functioncapitalize($element){$element=strtolower($element);returnucwords($element);}$capitals=array('Alabama'=>'montGoMEry','Alaska'=>'Juneau','Arizona'=>'凤凰');$capitals=array_map("大写",$capitals);6.对数组进行按键排序FlashCard程序中经常会用到各种排序,比如按字母顺序排序,可以使用kso??rt()函数关联按键对数组进行排序。$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"存在!";}else{echo"Doesnotexist!";}很少有人知道这个函数还可以判断一个数组key是否存在。在这一点上,它与array_key_exists()函数相同。$capitals=array('Arizona'=>'Phoenix','Alaska'=>'Juneau','Alabama'=>'Montgomery');if(array_key_exists("Alaska",$capitals)){echo"键存在!";}else{echo"Keydoesnotexist!";}9.搜索数组你可能想搜索数组资源,这样用户可以很容易地检索到与特定州首府相关的州,通过array_search()函数实现一个数组搜索。$capitals=array('Arizona'=>'Phoenix','Alaska'=>'Juneau','Alabama'=>'Montgomery');$state=array_search('Juneau',$capitals);//$state='Alaska'10.标准PHP库标准PHP库(StandardPHPLibrary,SPL)为开发者提供了许多数据结构、迭代器、接口、异常等以前的PHP语言中没有的功能。可以通过面向对象的语法使用这些函数来迭代数组。$capitals=array('Arizona'=>'Phoenix','Alaska'=>'Juneau','Alabama'=>'Montgomery');$arrayObject=newArrayObject($capitals);foreach($arrayObjectas$state=>$capital){printf("%s的首府是%s",$state,$capital);}//亚利桑那州的首府是菲尼克斯//阿拉斯加的首府是朱诺//阿拉巴马州的首府是蒙哥马利
