PHP array操作10个小技巧分享

  1、向array中添加元素

  php是一个弱类型语言。因此不必象c语言那样为php array声明长度。向其中添加元素的过程也是声明和初始化的过程。

  

复制代码 代码如下:

  $capitals = array(

  'Alabama' => 'Montgomery',

  'Alaska' => 'Juneau',

  'Arizona' => 'Phoenix'

  );

  继续添加元素也很简单

  

复制代码 代码如下:

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

  如果不是关联数组而只是数字索引的数组可以使用array_push()和array_unshift()函数增加元素

  2、从array中删除元素

  从数组中移除元素可以使用unset() 函数

  

复制代码 代码如下:

  unset($capitals['California']);

  也可以使用array_pop()或array_shift()函数从数组头或尾部顺序移除元素

  3、array键值互换

  如果希望新建数组的键是老数组的值而值是老数组的键,简而言之就是键值对调,则可以使用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、合并数组

  如果希望将两个或多个数组合并成一个新的数组,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中的值

  譬如希望将数组的中值全部改为小写后大写首字母,使用回调函数递归地对每个数组成员调用是个不错的方法,php中这个函数是php_map()

  

复制代码 代码如下:

  function capitalize($element)

  {

  $element = strtolower($element);

  return ucwords($element);

  }

  $capitals = array(

  'Alabama' => 'montGoMEry',

  'Alaska' => 'Juneau',

  'Arizona' => 'phoeniX'

  );

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

  6、根据array的键为数组排序

  

复制代码 代码如下:

  $capitals = array(

  'Arizona' => 'Phoenix',

  'Alaska' => 'Juneau',

  'Alabama' => 'Montgomery'

  );

  ksort($capitals);

  7、随机化array元素的顺序

  shuffle() 和上面的ksort()函数恰恰相反,可以打乱数组现有的秩序,以达到随机化的目的。

  

复制代码 代码如下:

  $capitals = array(

  'Arizona' => 'Phoenix',

  'Alaska' => 'Juneau',

  'Alabama' => 'Montgomery'

  );

  shuffle($capitals);

  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标准函数库

  一口气介绍这个多操作array的函数,如果您还觉得不过瘾,可以继续查看Standard PHP Library 中的内容^_^

  

复制代码 代码如下:

  $capitals = array(

  'Arizona' => 'Phoenix',

  'Alaska' => 'Juneau',

  'Alabama' => 'Montgomery'

  );

  $arrayObject = new ArrayObject($capitals);

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

  {

  printf("The capital of %s is %s<br />", $state, $capital);

  }

  // The capital of Arizona is Phoenix

  // The capital of Alaska is Juneau

  // The capital of Alabama is Montgomery