代码之家  ›  专栏  ›  技术社区  ›  Success Man

如何将数组二维转换为集合laravel?

  •  1
  • Success Man  · 技术社区  · 6 年前

    我有这样的数组:

    $test = array(
        array(
            'name' => 'Christina',  
            'age' => '25' 
        ),
        array(
            'name' => 'Agis', 
            'age' => '22'
        ),
        array(
            'name' => 'Agnes', 
            'age' => '30'
        )
    );
    

    我想把它换成拉拉维尔收藏

    我试着这样做:

    collect($test)
    

    结果并不完美。还有一个数组

    我如何解决这个问题?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Dwight    6 年前

    collect($test) 不转换 $test 对于集合,它返回 美元测试 作为一个集合。您需要将它的返回值用于新变量,或者覆盖现有变量。

    $test = collect($test);
    

    如果要将单个项转换为对象(而不是数组),如下面注释中所示,则需要强制转换它们。

    $test = collect($test)->map(function ($item) {
        return (object) $item;
    });
    
        2
  •  0
  •   Codedreamer    6 年前

    分享更多的光。

    集合是“可宏的”,它允许您在运行时向集合类添加其他方法。根据Laravel关于收藏品的解释。数组可以是维的。使用map函数扩展集合以将子数组转换为对象

    $test = array(
        array(
            'name' => 'Christina',  
            'age' => '25' 
        ),
        array(
            'name' => 'Agis', 
            'age' => '22'
        ),
        array(
            'name' => 'Agnes', 
            'age' => '30'
        )
    );
    
    // can be converted using collection + map function
    $test = collect($test)->map(function($inner_child){
        return (Object) $inner_child;
    });
    
    This will cast the inner child array into Object.