美文网首页
PHP数组的进阶用法

PHP数组的进阶用法

作者: 栾呱呱 | 来源:发表于2016-09-21 16:21 被阅读176次

对于数组的基本操作,可参考PHP数组的相关操作

  • array_filter()过滤数组元素
    array_filter()可以利用回调函数挨个过滤数组中的值,如果回调函数的返回值为true,当前值就会保留到结果数组中,键名保持不变。
array array_filter ( array $array[, [callable]$callback[, int $flag = 0 ]] )
$array//迭代的数组
$callback//回调函数
$flag//定义哪个变量应用于回调函数,ARRAY_FILTER_USE_KEY和ARRAY_FILTER_USE_BOTH
//example1:筛选奇数
function odd($var)
{ 
    // 判断书否是奇数,和1作位运算 
    return ($var & 1);
}
$array1 = array("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5);
print_r(array_filter($array1, "odd"));//['a'=>1,'c'=>3,'e'=>5]
//example2:无回调函数,过滤空值
$entry = array(
          0 => 'hello',
          1 => false,
          2 => -1,
          3 => null,
          4 => ''
      );
print_r(array_filter($entry));//[0=>'hello',2=>-1]
//example3:带flag参数
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function ($k) {
      return $k == 'b';
}, ARRAY_FILTER_USE_KEY));//['b'=>2]
var_dump(array_filter($arr, function ($v, $k) {
  return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));//['b'=>2,'d'=>4]

  • array_walk()对数组中的元素应用用户自定义的函数
    array_walk()可以将数组每个元素应用于自己定义的回调函数,如果成功则返回true,否则返回false。
bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
$array//数组
$callback//用户定义的回调函数,参数是键名和键值
$userdata//自定义的参数
//example1
function myfunction($value, $key)
{
       echo "The key $key has the value $value";
}
$a = array("a" => "red", "b" => "green", "c" => "blue");
array_walk($a, "myfunction");//The key a has the value red...
//example2:自定义函数中的第一个参数指定为引用&$value,改变数组元素的值
function myfunction(&$value,$key)
{
       $value="yellow";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
print_r($a);//['a'=>'yellow','b'=>'yellow','c'=>'yellow']
//example3:增加自定义参数
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
function test_alter(&$item, $key, $prefix)
{
       $item = "$prefix: $item";
}
array_walk($fruits, 'test_alter', 'fruit');//['d'=>'fruit: lemon','a'=>'fruit: orange','b'=>'fruit: banana','c'=>'fruit: apple']

未完,待补充......

相关文章

  • PHP数组的进阶用法

    对于数组的基本操作,可参考PHP数组的相关操作 array_filter()过滤数组元素array_filter(...

  • 链家-开发商端-面试题

    php php常用的数组及用法 php魔术函数 php私有成员变量 列举常用的打印函数及区别 实现一个单例模式 调...

  • php sort

    在php中自带了大量了数组排序函数,下面我们一一来介绍一下关于php数组排序的用法吧。 sort() 函数用于对数...

  • 全栈技术精选文章【持续更新~~】

    php PHP 数组使用之道 PHP程序员进阶学习书籍参考指南 教你在不使用框架的情况下也能写出现代化 PHP 代...

  • PHP进阶-数组(1)

    PHP数组定义 数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西。 如果你去某...

  • PHP array总结

    用好PHP中的array,有事半功倍的效果 1.array 创建新数组; 用法:$test = array();$...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • PHP全栈学习笔记24

    PHP in_array() 函数 定义和用法in_array() 函数搜索数组中是否存在指定的值。 type 参...

  • PHP全栈学习笔记24

    PHP in_array() 函数 定义和用法in_array() 函数搜索数组中是否存在指定的值。 type 参...

  • array_column 的使用

    定义和用法 PHP 版本: 5.5+array_column() 返回输入数组中某个单一列的值。 语法 array...

网友评论

      本文标题:PHP数组的进阶用法

      本文链接:https://www.haomeiwen.com/subject/xweaettx.html