分享几个有意思的数组方法

使用传递的数组递归替换第一个数组的元素 array_replace_recursive

$base= array('citrus'=> array( "orange") , 'berries'=> array("blackberry", "raspberry"), );

$replacements= array('citrus'=> array('pineapple'), 'berries'=> array('blueberry'));

$basket= array_replace_recursive($base, $replacements);

带索引检查计算数组的交集,用回调函数比较索引 array_intersect_uassoc

$array1= array("a"=> "green", "b"=> "brown", "c"=> "blue", "red");

$array2= array("a"=> "GREEN", "B"=> "brown", "yellow", "red");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));

递归地合并一个或多个数组 array_merge_recursive

$ar1= array("color"=> array("favorite"=> "red"), 5);\

$ar2= array(10, "color"=> array("favorite"=> "green", "blue"));\

$result= array_merge_recursive($ar1, $ar2);

使用传递的数组递归替换第一个数组的元素 array_replace_recursive

$base= array('citrus'=> array( "orange") , 'berries'=> array("blackberry", "raspberry"), );

$replacements= array('citrus'=> array('pineapple'), 'berries'=> array('blueberry'));

$basket= array_replace_recursive($base, $replacements);

print_r($basket);\

将一个线性数组转换为一个树,或者多维数组

functionarray_stack (&$a, $p= '@parent', $c= '@children')

    {

      $l= $t= array();

      foreach($aAS $key=> $val):

        if(!$val[$p]) $t[$key] =& $l[$key];

        else$l[$val[$p]][$c][$key] =& $l[$key];

        $l[$key] = (array)$l[$key] + $val;

      endforeach;

      return$a= array('tree'=> $t, 'leaf'=> $l);

    }

    $node= array();

    $node[1] = array('@parent'=> 0, 'title'=> 'I am node 1.');

    $node[2] = array('@parent'=> 1, 'title'=> 'I am node 2.');

    $node[3] = array('@parent'=> 2, 'title'=> 'I am node 3.');

    $node[4] = array('@parent'=> 1, 'title'=> 'I am node 4.');

    $node[5] = array('@parent'=> 4, 'title'=> 'I am node 5.');

    print_r(array_stack($node));

本文参考地址:https://www.php.cn/php-weizijiaocheng-427602.html

你可能感兴趣的:(分享几个有意思的数组方法)