• 技术文章 >php教程 >php手册

    php基础之数组的合并、拆分、区别取值函数集

    2016-06-13 10:44:32原创518
    PHP数组的合并、拆分、区别取值函数集
    都说PHP的数组功能很强大、只有真正用于项目工作当中才能够感受得到,至少我认为是,现在已慢慢的发觉其中的奥秘了……
    合并数组有三个函数:
    1.array_combine()
    携带两个参数数组,参数数组一的值作新数组的键,参数数组二的值作新数组的值。很简单。
    例子:
    $a = array('green', 'red', 'yellow');
    $b = array('avocado', 'apple', 'banana');
    $c = array_combine($a, $b);

    print_r($c);
    ?>

    上例将输出:

    Array
    (
    [green] => avocado
    [red] => apple
    [yellow] => banana
    )
    2.array_merge()
    携带两个参数数组,简单的将数组二追加到数组一的后面构成新数组。
    例子:
    $arrayarray1 = array("color" => "red", 2, 4);
    $arrayarray2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
    $result = array_merge($array1, $array2);
    print_r($result);
    ?>

    上例将输出:
    Array
    (
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
    )
    3.array_merge_recursive()
    与上面函数雷同,唯一的区别是在追加时发现要添加的键已存在时,array_merge()的处理方式是覆盖前面的键值,array_merge_recursive()的处理方式是重构子数组,将重复的键的值组成一个新的数值数组。
    例子:
    $ar1 = array("color" => array("favorite" => "red"), 5);
    $ar2 = array(10, "color" => array("favorite" => "green", "blue"));
    $result = array_merge_recursive($ar1, $ar2);
    ?>

    上例将输出
    $result:

    Array
    (
    [color] => Array
    (
    [favorite] => Array
    (
    [0] => red
    [1] => green
    )

    [0] => blue
    )

    [0] => 5
    [1] => 10
    )
    拆分数组有两个函数:
    1.array_slice()
    携带三个参数,参数一为目标数组,参数二为offset,参数三为length。作用为,从目标数组中取出从offset开始长度为length的子数组。
    如果offset为正数,则开始位置从数组开头查offset处,如果offset为负数开始位置从距数组末尾查offset处。如果length 为正数,则毫无疑问取出的子数组元素个数为length,如果length为负数,则子数组从offset开始到距数组开头count(目标数 组)-|length|处结束。特殊地,如果length为空,则结束位置在数组结尾。
    例子:
    $input = array("a", "b", "c", "d", "e");

    $output = array_slice($input, 2); // returns "c", "d", and "e"
    $output = array_slice($input, -2, 1); // returns "d"
    $output = array_slice($input, 0, 3); // returns "a", "b", and "c"

    // note the differences in the array keys
    print_r(array_slice($input, 2, -1));
    print_r(array_slice($input, 2, -1, true));
    ?>

    上例将输出:
    Array
    (
    [0] => c
    [1] => d
    )
    Array
    (
    [2] => c
    [3] => d
    )
    2.array_splice()
    携带三个参数,同上,作用是删除从offset开始长度为length的子数组。
    例子:
    $input = array("red", "green", "blue", "yellow");
    array_splice($input, 2);
    // $input is now array("red", "green")

    $input = array("red", "green", "blue", "yellow");
    array_splice($input, 1, -1);
    // $input is now array("red", "yellow")

    $input = array("red", "green", "blue", "yellow");
    array_splice($input, 1, count($input), "orange");
    // $input is now array("red", "orange")

    $input = array("red", "green", "blue", "yellow");
    array_splice($input, -1, 1, array("black", "maroon"));
    // $input is now array("red", "green",
    // "blue", "black", "maroon")

    $input = array("red", "green", "blue", "yellow");
    array_splice($input, 3, 0, "purple");
    // $input is now array("red", "green",
    // "blue", "purple", "yellow");
    ?>
    区别取值函数有四个:
    1.array_intersect()
    携带参数不定,均为数组,返回所有数组中公共元素的值组成的数组,数组的键由所在第一个数组的键给出。
    例子:
    $arrayarray1 = array("a" => "green", "red", "blue");
    $arrayarray2 = array("b" => "green", "yellow", "red");
    $result = array_intersect($array1, $array2);
    ?>

    上例将输出:
    Array
    (
    [a] => green
    [0] => red
    )
    2.array_intersect_assoc()
    在前一个函数的基础上,返回所有数组中键、值均相同的键值对。
    例子:
    $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
    $array2 = array("a" => "green", "yellow", "red");
    $result_array = array_intersect_assoc($array1, $array2);
    ?>

    上例将输出:
    Array
    (
    [a] => green
    )
    3.array_diff()
    携带多个数组,返回第一个数组中有的而后面的数组中没有的所有的值组成的新数组,对应键取自第一个数组。
    例子:
    $array1 = array("a" => "green", "red", "blue", "red");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_diff($array1, $array2);

    print_r($result);
    ?>

    上例将输出:
    Array
    (
    [1] => blue
    )
    4.array_diff_assoc()
    在前一个函数的基础上,不仅需要匹配值还要匹配键。
    例子:
    $array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");
    $array2 = array ("a" => "green", "yellow", "red");
    $result = array_diff_assoc($array1, $array2);
    ?>

    上例将输出:
    Array
    (
    [b] => brown
    [c] => blue
    [0] => red
    )

    作者“飞翔的人生”

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP操作AD,adLDAP类API详解与实例 下一篇:php流程控制语句
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 简化的实现方法(限制为同一会话页面)• php批量添加数据与批量更新数据的实现方法• php上传图片类及用法示例,• 非常全面的php日期时间运算汇总,php日期汇总• 刷新PHP缓冲区为你的站点加速,刷新php缓冲区站点
    1/1

    PHP中文网