五:PHP数组相关的函数

1. array_key_exists()——查找数组键名是否存在

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
print_r(array_key_exists("aa",$list));  // 1
print_r(array_key_exists("00",$list));  // 返回空

2. array_keys()——返回数组的键所组成的新数组

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
print_r(array_keys($list)); // Array ( [0] => aa [1] => bb [2] => cc )

3. array_values()——返回数组所有值组成的新数组

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
print_r(array_values($list)); // Array ( [0] => 12a [1] => bbb [2] => aaa )

4. array_unique()——数组去重,返回去重之后的新数组

$list = array('0'=>'aaa','1'=>'bbb','2'=>'aaa');
print_r(array_unique($list)); // Array ( [0] => aaa [1] => bbb )

5. array_pop()——删除数组中的最后一个元素,返回被删除元素的value值。如果数组本身就是空的,则该数组删除后,依旧返回空数组,而不会报错

$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
array_pop($list);
print_r($list); // Array ( [0] => 12a [1] => bbb )

$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
print_r(array_pop($list));  // aaa

6. array_sum()——数组中元素的和,如果不是整型或者浮点型的,先转化成这两种类型,如果全都没有数字,就返回0

$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
print_r(array_sum(($list))); // 12

7. array_splice(array,offset,length,array)——在数组任意位置插入元素。选择数组中的一系列元素,删除他们并用其他值代替

  • array 必需。规定数组。
  • offset 必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。如果 offset 为负,则从输入数组末尾倒数该值指定的偏移量开始移除。
  • length 可选。数值。如果省略该参数,则移除数组中从 offset 到 结尾的所有部分。如果指定了 length 并且为正值,则移除这么多元素。如果指定了 length 且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的元素。
  • array 被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。
$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
$arr = array('0'=>'000','1'=>'111');
array_splice($list,0,1,$arr); // 从第0个位置开始,删除1个,并把新数组填充到里面
print_r($list);  // Array ( [0] => 000 [1] => 111 [bb] => bbb [cc] => aaa )

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
$arr = array('0'=>'000','1'=>'111');
array_splice($list,0,0,$arr); // 从第0个位置开始,不删除,并把新数组填充到里面
print_r($list);  // Array ( [0] => 000 [1] => 111 [aa] => 12a [bb] => bbb [cc] => aaa )

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
$arr = array('0'=>'000','1'=>'111');
array_splice($list,0); // 全部删除了
print_r($list);  // Array ( )

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
$arr = array('0'=>'000','1'=>'111');
array_splice($list,0,2); // 删除两个,不填充
print_r($list);  // Array ( [cc] => aaa )

8. array_slice()——在数组中根据条件取出一段,并返回

// 从第二个开始,取到最后,并返回。索引表示取出的个数
$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
print_r(array_slice($list,2));  // Array ( [cc] => aaa )

// 如果索引超过了数组的个数,返回空数组
$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa');
print_r(array_slice($list,6));  // Array (  )

$list = array('aa'=>'12a','bb'=>'bbb','cc'=>'aaa','dd'=>'nihao');
print_r(array_slice($list,1,1));  // Array ( [bb] => bbb )
print_r(array_slice($list,1,2));  // Array ( [bb] => bbb [cc] => aaa )

9. array_rand($array,索引)——随机从数组中选出一个或者多个元素

  • $array是要取的数组
  • 索引是要取的个数,如果 索引的值超过数组中元素的个数,会报错
// 在里面取出随机数字
$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
print_r(array_rand($list,1)); // 返回的是key值,无论有没有明确的写明。比如2/1等

$list = array('12a','bbb','aaa');
print_r(array_rand($list,2)); // 返回的是key值组成的数组,新数组的value是旧数组的key值。比如:Array ( [0] => 0 [1] => 2 )

10. in_array(value,array,type)——查找数组值是否存在。在数组中查找给定的值

  • value:必须,表示在数组中搜索的值
  • array:必须,要搜索的数组
  • type:可选,如果设置为true,表示要搜索的数据和数组中的数据类型相同
    如果value存在于array中,返回true,否则,返回false
    如果第三个参数是true,则value的类型必须和array中数据的类型相同,才返回true
$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
print_r(in_array('aaa',$list,true)); // 1

$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
print_r(in_array(123,$list)); // 返回空

11. shuffle()——将数组中的元素重新随机排列。直接返回1,返回的数组随机

// 产生随机数组
$list = array('0'=>'12a','1'=>'bbb','2'=>'aaa');
shuffle($list);
print_r($list);  // Array ( [0] => aaa [1] => bbb [2] => 12a )

12. range()函数创建一个包含指定范围的元素的数组,如果low参数大于high参数,则创建的数组是从high到low。该函数创建一个数组,包含从low到high之间的整数或字符

$number = range(0,5);   //自动创建0到5的数组
print_r($number); // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) 
echo "
"; $number = range(5,1); //自动创建5到1的数组 print_r($number); // Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 ) echo "
"; $letter = range('a', 'e'); //创建a到e的数组 print_r($letter); // Array ( [0] => a [1] => b [2] => c [3] => d [4] => e ) echo "
"; $reset = range('z', 'w'); //创建z到w的逆序数组 print_r($reset); // Array ( [0] => z [1] => y [2] => x [3] => w )

13. reset()函数,将数组指针指向第一位

$userAges = array('张三' => 22, '李四' => 21, '王五'=>18);
$a = each($userAges);   // 指向第一位,$a是第一位张三22的新数组 ,而$userAges现在指向的是第二位
echo $a['key']; // 张三

$b = each($userAges);
echo $b['key']; // 李四

reset($userAges);   // 将数组指针指向数组第一位,无论刚开始在第几位
$c = each($userAges);
echo $c['value']; // 22

14. array_flip()函数,置换数组的键和值

$userAges = array('张三' => 22, '李四' => 21, '王五'=>18);
$new_userAges = array_flip($userAges);
print_r ($new_userAges); // Array ( [22] => 张三 [21] => 李四 [18] => 王五 )

15. 排序函数

  • sort() 函数用于对数组单元从低到高进行排序。
  • rsort() 函数用于对数组单元从高到低进行排序。
  • asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
  • arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
  • ksort() 函数用于对数组单元按照键名从低到高进行排序。
  • krsort() 函数用于对数组单元按照键名从高到低进行排序
    详情:单击查看排序函数的栗子

16. array_fill() 用键值填充数组

// 一维数组
$a = array_fill(2,4,'hello'); // Array ( [2] => hello [3] => hello [4] => hello [5] => hello )
print_r($a);
// 下标从2开始,填充四位,每一位的value是hello

// 二维数组
$x=2;
$y=3;
$a=array_fill(0,$x,array_fill(0,$y,array()));
print_r($a); // Array ( [0] => Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) ) [1] => Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) ) )
// 定义了一个两行三列的空二维数

你可能感兴趣的:(五:PHP数组相关的函数)