YII2 ArrayHelper常用方法

$data = [
            ['age' => 30, 'name' => 'Alexander'],
            ['age' => 30, 'name' => 'Brian'],
            ['age' => 19, 'name' => 'Barney'],
        ];
        /**
         * 多维排序
         */
        ArrayHelper::multisort($data, ['age', 'name'], [SORT_ASC, SORT_DESC]);

        /**
         * 测试阵列
         */
        var_dump(ArrayHelper::isIn('a', ['a']));
        var_dump(ArrayHelper::isIn('a', ['a']));
        var_dump(ArrayHelper::isSubset(['a', 'c'], ['a', 'b', 'c']));

        $posts = Sample::find()->all();
        $arr = ArrayHelper::toArray($posts,[
            'common\models\Sample'=>[
                'c1',
                'c2'=>'c3',
            ]
        ]);

        var_dump($arr);


        $array = [
            ['id' => '123', 'name' => 'aaa', 'class' => 'x'],
            ['id' => '123', 'name' => 'bbb', 'class' => 'x'],
            ['id' => '345', 'name' => 'ccc', 'class' => 'y'],
        ];

        $result1 = ArrayHelper::map($array, 'id', 'name');
        $result2 = ArrayHelper::map($array, 'id', 'name', 'class');
        var_dump($result1);
        var_dump($result2);


        $r1 = ArrayHelper::index($array,'id');
        //以ID为索引,相同的ID后面将覆盖前面的
        print_r($r1);

        $r2 = ArrayHelper::index($array,null,'id');
        print_r($r2);
        //以ID为索引相同的ID不会被覆盖,而是合并成一个数组

        $r3 = ArrayHelper::index($array,'class',[function($ele){
            return $ele['id'];
        },'name']);

        //以三级分组索引 id -> name -> class

        print_r($r3);
0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据