排序关联数组的数组php

时间:2013-11-24 18:41:12

标签: php arrays sorting

我知道这可能是重复的问题,或者在stackoverflow中有一个答案,但我无法让它在我的代码上工作。以下是样本:

我有PHP:

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

当我在print_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_multisort但是我不能让它工作,任何专业人士都可以指导我在这里?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用array_multisort

MANUAL

试试这个:

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

答案 1 :(得分:0)

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;
   });       
?>
相关问题