ArrayUtil

    目录

    类名: Imi\Util\ArrayUtil

    数组帮助类

    方法

    remove

    从数组中移除一个元素

    $array = [1, 2, 3, 4, 5];
    
    // 删除一个元素:[1, 3, 4, 5]
    var_dump(ArrayUtil::remove($array, 2));
    
    // 删除多个元素:[1, 5]
    var_dump(ArrayUtil::remove($array, 2, 3, 4));

    recursiveMerge

    多维数组递归合并,具体效果请看下面代码及运行结果

    $array1 = [
        'a'    =>    [
            'b1'    =>    [
                'c1'    =>    1,
            ],
            'b2'    =>    [
                'c2'    =>    2,
            ]
        ]
    ];
    $array2 = [
        'a'    =>    [
            'b1'    =>    [
                'c1'    =>    3,
            ]
        ]
    ];
    
    // array_merge
    print_r(array_merge($array1, $array2));
    
    // +
    print_r($array1 + $array2);
    
    // ArrayUtil::recursiveMerge
    print_r(ArrayUtil::recursiveMerge($array1, $array2));

    运行结果:

    Array
    (
        [a] => Array
            (
                [b1] => Array
                    (
                        [c1] => 3
                    )
            )
    )
    Array
    (
        [a] => Array
            (
                [b1] => Array
                    (
                        [c1] => 1
                    )
                [b2] => Array
                    (
                        [c2] => 2
                    )
            )
    )
    Array
    (
        [a] => Array
            (
                [b1] => Array
                    (
                        [c1] => 3
                    )
                [b2] => Array
                    (
                        [c2] => 2
                    )
            )
    )

    columnToKey

    将二维数组第二纬某key变为一维的key

    $array = [
        ['id'=>1,'name'=>'a'],
        ['id'=>2,'name'=>'b'],
        ['id'=>3,'name'=>'c'],
    ];
    
    // 保留原始字段
    print_r(ArrayUtil::columnToKey($array, 'id'));
    
    // 去除原始字段
    print_r(ArrayUtil::columnToKey($array, 'id', false));

    运行结果:

    Array
    (
        [1] => Array
            (
                [id] => 1
                [name] => a
            )
        [2] => Array
            (
                [id] => 2
                [name] => b
            )
        [3] => Array
            (
                [id] => 3
                [name] => c
            )
    
    )
    Array
    (
        [1] => Array
            (
                [name] => a
            )
        [2] => Array
            (
                [name] => b
            )
        [3] => Array
            (
                [name] => c
            )
    )

    isAssoc

    判断数组是否为关联数组

    $array = [1, 2, 3];
    // false
    var_dump(ArrayUtil::isAssoc($array));
    
    $array = [1, 'b'=>2, 3];
    // true
    var_dump(ArrayUtil::isAssoc($array));

    random

    随机获得数组中的值

    保持键名:

    $array = ['a' => 1, 'b' => 2, 'c' => 3];
    // 返回随机的数组,如:['a' => 1],第二个参数缺省默认为1
    var_dump(ArrayUtil::random($array));
    
    // 返回随机的数组,如:['b' => 2, 'a' => 1]
    var_dump(ArrayUtil::random($array, 2));

    不保持键名:

    $array = ['a' => 1, 'b' => 2, 'c' => 3];
    // 返回随机的数组,如:[1, 2]
    var_dump(ArrayUtil::random($array, 2, false));