[英]how to rearrange array with same key value
我想通過這些鍵值重新排列數組。 讓我解釋。 請檢查我的數組值
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
)
)
這是我的數組結果,我希望通過key recipe_id重新排列它。 他們將一起使用哪個cipal_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();
如果您想將它們除以recipe_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);
首先將對象轉換為數組形式
json_decode(json_encode(json_decode($arr_value_list)), true); // $arr_value_list is values array
然后使用以下函數對值進行排序
$ key_name ='用戶名';
usort($arr_value_list, function ($a, $b) use(&$key_name) { return $a[$name] - $b[$name]; });
通過print_r($ arr_value_list)獲取輸出;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.