Member 13633067 Ответов: 2

Как отсортировать массив


Array
(
    [0] => stdClass Object
        (
            [posts] => 29
            [term_id] => 49
        )

    [1] => stdClass Object
        (
            [posts] => 2
            [term_id] => 54
        )

    [2] => stdClass Object
        (
            [posts] => 11
            [term_id] => 36
        )

)


Как я могу отсортировать этот массив по количеству сообщений?

например, 2,11,29

Что я уже пробовал:

function cmp($a, $b)
{
    if ($a["posts"] == $b["posts"]) {
        return 0;
    }
    return ($a["posts"] < $b["posts"]) ? -1 : 1;
}

usort ($array_o, "cmp");

Patrice T

В чем же проблема?
Никаких документов ? нет туто на Сортировке?

2 Ответов

Рейтинг:
2

Member 13633067

Warning: usort() expects parameter 1 to be array, null given in /home/dposts1/public_html/demo/wp-content/plugins/wp-random-date-post/category-posts.php on line 26


Не работать


Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
И удалите это не решение.

Рейтинг:
0

Bryian Tan

Это может быть полезно - Нативный PHP сортирует массив объектов по свойствам – Tormix Blog – Web development[^]

<?php

 $attachment_ids = array();
    $attachment_ids[0]['posts'] = 29;
    $attachment_ids[0]['term_id'] = 49;
    $attachment_ids[1]['posts'] = 2;
    $attachment_ids[1]['term_id'] = 54;
    $attachment_ids[2]['posts'] = 11;
    $attachment_ids[2]['term_id'] = 36;
    $attachment_ids                 = json_encode($attachment_ids);
    $attachment_ids                 = json_decode($attachment_ids, FALSE);
   // print_r($attachment_ids);


function sortArrayWithObjects($array, $property)
{
    usort($array, function ($a, $b) use ($property) {
        return (($a->$property == $b->$property) ? 0 : (($a->$property < $b->$property) ? -1 : 1));
        //[short version] return strcmp($a->$property, $b->$property);
    });
    return $array;
}

$result = sortArrayWithObjects($attachment_ids, 'posts');
echo '<pre>';
var_dump($result);
echo '</pre>';
?>


Выход:
array(3) {
  [0]=>
  object(stdClass)#2 (2) {
    ["posts"]=>
    int(2)
    ["term_id"]=>
    int(54)
  }
  [1]=>
  object(stdClass)#3 (2) {
    ["posts"]=>
    int(11)
    ["term_id"]=>
    int(36)
  }
  [2]=>
  object(stdClass)#1 (2) {
    ["posts"]=>
    int(29)
    ["term_id"]=>
    int(49)
  }
}