Сортировать многомерный массив в php по ключу внутреннего массива

Я хочу отсортировать должности по метке времени "1357894278"

<?php
foreach( $jobs as &$job )
{
    $cj_date[] =  array( strtotime($job->date) => array( $job->title ));
}

foreach ($results['results'] as $result)
{
    $in_date[] = array ( strtotime($result['date']) => array ($result['jobtitle']) );
}

$ans[] = array_merge($cj_date,$in_date);

foreach($ans as $a)  
{
    ksort($a);
    print_r($a);
}
?>

Запустив этот скрипт, я получил следующий вывод:

Array( [0] => Array
              ( [1352796106] => Array 
                                ( [0] => JobTitle_1 )
              )
       [1] => Array
              ( [1352745201] => Array 
                                ( [0] => JobTitle_2 )
              )
       [2] => Array
              ( [1357894278] => Array 
                                ( [0] => JobTitle_3 )
              )
      )

Так как сортировать вакансии по 1352796106, 1352745201, 1357894278 Спасибо! Жди помощи

2 ответа

Решение

Попробуй это:

function compare($a, $b) {
    $ak = array_keys($a);
    $bk = array_keys($b);
    return ($ak[0] < $bk[0]) ? -1 : 1;
}

usort($ans, "compare");
var_dump($ans);

usort сортирует по пользовательской функции сравнения.

У меня была похожая проблема некоторое время назад. У меня была гораздо более сложная структура. В итоге я создал еще один массив в качестве своей "карты" и использовал его для сортировки / индексации.

Новый массив карт был очень простой структурой, которая содержала только необходимую информацию о моей другой структуре, достаточно информации для быстрой индексации и быстрой сортировки.

Я уверен, что могут быть и другие решения, но это сработало для меня, потому что у меня были очень большие сложные структуры, которые обходились бы дороже, если бы у меня не было такой дополнительной структуры карты. Все это сводится к тому, что вы рассчитываете свои временные затраты и выясняете, будет ли это дорого или нет для вас, в зависимости от сложности и размера ваших типов данных.

Другие вопросы по тегам