Php 如何重新排列具有相同键值的数组
我想按这些键值重新排列数组。让我解释一下。请检查我的数组值Php 如何重新排列具有相同键值的数组,php,arrays,laravel,Php,Arrays,Laravel,我想按这些键值重新排列数组。让我解释一下。请检查我的数组值 Array ( [0] => stdClass Object ( [user_id] => 103 [recipe_id] => 90 ) [1] => stdClass Object ( [user
Array
(
[0] => stdClass Object
(
[user_id] => 103
[recipe_id] => 90
)
[1] => stdClass Object
(
[user_id] => 103
[recipe_id] => 90
)
[2] => stdClass Object
(
[user_id] => 103
[recipe_id] => 64
)
[3] => stdClass Object
(
[user_id] => 103
[recipe_id] => 90
)
[4] => stdClass Object
(
[user_id] => 103
[recipe_id] => 64
)
)
这是我的数组结果,我想让它按关键配方id重新排列。哪个配方id和它们将一起排列。那样
Array
(
[0] => stdClass Object
(
[user_id] => 103
[recipe_id] => 90
)
[1] => stdClass Object
(
[user_id] => 103
[recipe_id] => 90
)
[2] => stdClass Object
(
[user_id] => 103
[recipe_id] => 90
)
[3] => stdClass Object
(
[user_id] => 103
[recipe_id] => 64
)
[4] => stdClass Object
(
[user_id] => 103
[recipe_id] => 64
)
)
如何排列此数组值??。我想像上面的例子一样显示数组结果。有没有办法用相同的键值重新排列我的数组
提前感谢试试这个
$sorted = collect($array)
->sortByDesc('recipe_id')
->values()
->all();
如果要按配方id划分,可以使用
$grouped = collect($array)
->groupBy('recipe_id')
->toArray();
试试这个
$sorted = collect($array)
->sortByDesc('recipe_id')
->values()
->all();
如果您想按配方id将它们分割,可以使用
$grouped = collect($array)
->groupBy('recipe_id')
->toArray();
您可以使用php usort函数,如下所示
$my_sort = function ($a , $b) {
if ($a->user_id == $b->user_id) {
if($a->recipe_id == $b->recipe_id) {
return 0;
}
return ($a->recipe_id < $b->recipe_id) ? -1 : 1;
}
return ($a->user_id < $b->user_id) ? -1 : 1;
};
$result = usort($arr,$my_sort);
$my_sort=函数($a,$b){
如果($a->user\u id==$b->user\u id){
如果($a->recipe\u id==b->recipe\u id){
返回0;
}
返回($a->recipe\u id<$b->recipe\u id)?-1:1;
}
返回($a->user\u id<$b->user\u id)?-1:1;
};
$result=usort($arr,$my_sort);
您可以按如下方式使用php usort函数
$my_sort = function ($a , $b) {
if ($a->user_id == $b->user_id) {
if($a->recipe_id == $b->recipe_id) {
return 0;
}
return ($a->recipe_id < $b->recipe_id) ? -1 : 1;
}
return ($a->user_id < $b->user_id) ? -1 : 1;
};
$result = usort($arr,$my_sort);
$my_sort=函数($a,$b){
如果($a->user\u id==$b->user\u id){
如果($a->recipe\u id==b->recipe\u id){
返回0;
}
返回($a->recipe\u id<$b->recipe\u id)?-1:1;
}
返回($a->user\u id<$b->user\u id)?-1:1;
};
$result=usort($arr,$my_sort);
json_decode(json_encode(json_decode($arr_value_list)), true);
// $arr_value_list is values array
usort($arr_value_list, function ($a, $b) use(&$key_name)
{
return $a[$name] - $b[$name];
});
json_decode(json_encode(json_decode($arr_value_list)), true);
// $arr_value_list is values array
usort($arr_value_list, function ($a, $b) use(&$key_name)
{
return $a[$name] - $b[$name];
});
通过print\u r($arr\u value\u list)获取输出 您可以使用PHP usort函数实现该结果的可能重复::您可以使用PHP usort函数实现该结果的可能重复::嗨,我有一个问题,我可以在数组中生成相同的recipe_id值,就像此数组中的所有90个值和所有64个alsoHI,我有一个问题,我能在数组中生成相同的recipe_id值吗?就像所有90个值在数组中显示一样,并且所有64个值也在数组中显示一样