我正在使用Laravel框架,我有MyModel
。
namespace App\Models;
use Illuminate\Support\Facades\DB;
class MyModel extends \Eloquent {
//Some stuff goes here
}
我已经制作了这个对数组数据进行分组的功能。 效果很好。
public static function GroupBy($array, $key){
$grouped = array();
foreach($array as $arr){
if(!array_key_exists($arr->MyModel['id'], $grouped)){$grouped[$arr->MyModel['id']] = array();}
array_push($grouped[$arr->MyModel['id']], $arr[$key]);
}
return $grouped;
}
现在我想通过传递我的分组模型来使这个函数更通用。在顺序中,我希望能够将MyModel['id']
作为另一个参数传递。类似于:
$by = "MyModel['id']";
public static function GroupBy($by, $array, $key){
$grouped = array();
foreach($array as $arr){
if(!array_key_exists($arr->$by, $grouped)){$grouped[$arr->$by] = array();}
array_push($grouped[$arr->$by], $arr[$key]);
}
return $grouped;
}
这最后一个解决方案不起作用。它返回一个数组,其中包含一个包含所有id
。