PHP常用函数(一):数组常用函数

1、list()

  list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值。

   PHP手册中的介绍

    

  使用详情 

<?php

//假设现在想为$a $b $c三个变量赋值,采用info数组中的内容

$info = ['this is a','this is b','this is c'];
list($a,$b,$c) = $info;

print<<<EOT
$a
<br>
$b
<br>
$c
<br>
EOT;

  运行结果

  

2、each()  

  

//实例代码 遍历$arr
<?php
    $arr = ['a'=>'this is a','b'=>'this is b','c'=>'this is c'];

    while($tmp = each($arr))
    {
        echo $tmp['key'].':'.$tmp['value'].'<br>';
    }

  运行结果:

  

3、数组指针操作

  • current()
  • key()
  • next()
  • prev()
  • end()
  • reset()
<?php
/*
1 current();  //读取指针位置的内容
2 key();      //读取当前指针指向内容的索引值
3 next();     //将数组中的内部指针指向下一单元
4 prev();     //将数组内部指针倒回一位
5 end();      //将数组内部指针指向最后一个元素
6 reset();    //将目前指针指向第一个索引位置
*/

$info = [
    'a' => 'this is a',
    'b' => 'this is b',
    'c' => 'this is c',
    'd' => 'this is d'
];

echo key($info).':'.current($info).'<br>';

next($info);
echo key($info).':'.current($info).'<br>';

end($info);
echo key($info).':'.current($info).'<br>';

reset($info);
echo key($info).':'.current($info).'<br>';

  运行结果:

  

4、键值操作函数

<?php

$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

echo 'keys:<br>';
//输出info数组的所有键
var_dump(array_keys($info));
echo '<br>';
echo 'values:<br>';
//输出info数组的所有值
var_dump(array_values($info));
echo '<br>';

//转换info数组 键值互换
echo 'flips:<br>';
var_dump(array_flip($info));
echo '<br>';

//搜索apple
echo 'search:<br>';
echo 'apple key is :'.array_search('apple',$info);
echo '<br>';

//元素翻转
echo 'reverse:<br>';
var_dump(array_reverse($info));
echo '<br>';

//检查元素
echo 'in?<br>';
echo 'blog is in $info? '.var_dump(in_array('blog',$info));
echo '<br>';

//检查键
echo 'key in?<br>';
echo 'b is in $info? '.var_dump(array_key_exists('b',$info));
echo '<br>';

//统计值的出现次数
$info[] = 'blog';
$info[] = 'blog';
echo 'value count<br>';
var_dump(array_count_values($info));
echo '<br>';

//删除重复的值
echo 'before unique<br>';
var_dump($info);
echo '<br>after unique<br>';
var_dump(array_unique($info));

  运行结果:

 5、回调函数 

  示例数组:

$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

  array_filter();

  PHP手册参考:

  

//array_filter();

//不使用flag
$filter_arr = array_filter($info,function($value){
    return strlen($value) == 3;
});
var_dump($filter_arr);
echo '<br>';
//使用flag
$filter_arr = array_filter($info,function($key){
    return in_array($key,['a','c']);
},ARRAY_FILTER_USE_KEY);
var_dump($filter_arr);
echo '<br>';

$filter_arr = array_filter($info,function($value,$key){
    return in_array($key,['a','c']) && $value == 'apple';
},ARRAY_FILTER_USE_BOTH);
var_dump($filter_arr);
echo '<br>';

  输出结果:

  array_walk();

  PHP手册参考:

  

//array_walk();

//不使用 userdata
array_walk($info,function($value,$key){
    echo "$key:$value   ";
});
echo "<br>";

//使用 userdata
array_walk($info,function(&$value,$key,$userdata){
    $value = $userdata.'-'.$value;
},'php');
var_dump($info);
echo "<br>";

  输出结果:

  array_map();

  PHP手册参考:

  

//array_map();
//单个数组
array_map(function($n){
    echo "$n  ";
},$info);
echo "<br>";
//多个数组
$info_2 = [
    'e' => 'egg',
    'f' => 'filco',
    'g' => 'good'
];
array_map(function($n1,$n2){
    echo "1:$n1-2:$n2  ";
},$info,$info_2);
echo '<br>';

  运行结果:

  

 6、数组分割


  array_slice()

  PHP手册参考

  

  array_splice()

  PHP手册参考:

  

  array_chunk()

   PHP手册:

  

  

  测试代码:

<?php
$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

//array_slice()
echo 'array_slice:<br>';
print_r(array_slice($info,0,3));
echo '<br><hr>';

//array_splice();
echo 'array_splice:<br>';
echo '原数组:<br>';
print_r($info);
echo '<br>';
//替换掉前两位
$tmp = array_splice($info,0,2,['king','queen']);
echo '替换后的数组:<br>';
print_r($info);
echo '<br>';
echo '替换掉数组:<br>';
print_r($tmp);
echo '<br><hr>';

//恢复原数组
$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];
//array_chunk();
echo 'array_splice:<br>';
echo '替换后的数组:<br>';
$tmp = array_chunk($info,2);
var_dump($tmp);

  运行结果:

7、数组运算

   测试代码:

  

<?php
$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

$info_2 = [
    'e' => 'apple',
    'f' => 'egg',
    'g' => 'java',
    'h' => 'cat'
];

$info_num = [120,10,1];

//array_sum
echo 'array_sum:<br>';
echo array_sum($info_num);
echo '<br>';
echo array_sum($info); //只对元素中的数值进行求和
echo '<br><hr>';

//array_merge
echo 'array_merge:<br>';
print_r(array_merge($info,$info_2,$info_num));
echo '<br><hr>';

//array_diff - 返回在info中但不在其他arr中的值
echo 'array_diff:<br>';
print_r(array_diff($info,$info_2));
echo '<br><hr>';

//array_intersect - 返回在info中也在在其他arr中的值
echo 'array_intersect:<br>';
print_r(array_intersect($info,$info_2));
echo '<br><hr>';

  运行结果:

8、数组的栈和队列操作

9、数组的排序操作

10、其他常用函数 

原文地址:https://www.cnblogs.com/zoujiejun96/p/9616451.html