我正在使用 php,我在 foreach 回圈中獲取資料,并且在某些元素中有鍵“profile_image_max_id”并且某些元素是空的
- 我想根據最大“profile_image_max_id”(如果存在)對資料進行排序,所以“profile_image_max_id”的最大值應該是1
- 在某些元素中(在 foreach 內),其中“profile_image_max_id”不退出應該帶有任何 randombaly/任何順序
這是我目前的資料
Array
(
[46456] => Array
(
[id] => 46456
[status] => approved
[profile_image] => isProfile
[profile_image_max_id] =>
)
[46457] => Array
(
[id] => 46457
[status] => approved
[profile_image] => isProfile
[profile_image_max_id] =>
)
這是我當前的代碼,我錯在哪里?
$final = array();
foreach ( $photos as $key $photo ) :
$final[$key] = $row['price'];
endforeach;
array_multisort($final, SORT_DESC, $photos);
uj5u.com熱心網友回復:
您可以uasort通過傳入如下所示的自定義回呼來執行此操作。如果鍵不存在,我們回傳 INT 的最小值profile_image_max_id,使其最終出現。否則,profile_image_max_id按降序排序。
<?php
uasort($data, function($a, $b){
$a_image_id = $a['profile_image_max_id'] ?? PHP_INT_MIN;
$b_image_id = $b['profile_image_max_id'] ?? PHP_INT_MIN;
return $b_image_id <=> $a_image_id;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/462136.html
上一篇:插入排序演算法,奇怪的行為
下一篇:查找陣列中所有唯一元素的位置
