对关联数组php的数组进行排序


sort array of associative arrays php

我知道这可能是一个重复的问题,或者stackoverflow中的某个地方有答案,但我就是无法在我的代码中使用它。这是示例:

我有PHP:

foreach ($load_image_array as $key) {
    foreach($key as $k) {
      echo "<pre>";
       print_r($k);
      echo "<pre>"; 
    }
  }

其中,当我打印_r时,它显示为:

Array
(
    [upload_id] => 26
    [upload_username] => user1
)
Array
(
    [upload_id] => 23
    [upload_username] => user2
)
Array
(
    [upload_id] => 25
    [upload_username] => user1
)
Array
(
    [upload_id] => 24
    [upload_username] => user2
)

我只想按[upload_id]排序。我试过array_multi-sort,但我做不到,有专业人士可以在这里指导我吗?谢谢

USORT

数组元素本身就是数组。您可以使用自定义比较功能。

function sort_desc($item1,$item2)
{
    if ($item1['upload_id'] == $item2['upload_id']) return 0;
    return ($item1['upload_id'] < $item2['upload_id']) ? 1 : -1;
}
usort($upload,'sort_desc');
print_r($upload);

或者您也可以使用以下simplified版本。

<?php
   usort($upload, function($a, $b) {
       return $a->integer_property - $b->integer_property;
   });       
?>

您可以使用array_multisort

手动

试试这个:

$upload = array();
foreach ($load_image_array as $key => $row)
{
    $upload[$key] = $row['upload_id'];
}
array_multisort($upload, SORT_DESC, $load_image_array);