2013-09-15 3 views
-2

сначала прошу прощения за мой английский. У меня есть массив из в самом деле ИПН с форматом JSON, я пытаюсь сортировать массив по дате значения, это результат в самом деле апиPHP Сортировка действительно Json Array по дате

  [0] => stdClass Object 
      (
       [jobtitle] => MUDLOGGER 
       [company] => Weatherford 
       [city] => South Jakarta 
       [state] => JK 
       [country] => ID 
       [formattedLocation] => South Jakarta 
       [source] => Weatherford 
       [date] => Tue, 03 Sep 2013 14:15:56 GMT 
       [onmousedown] => indeed_clk(this, '7414'); 
       [latitude] => -6.266483 
       [longitude] => 106.8022 
       [jobkey] => a7490605224a8d72 
       [sponsored] => 
       [expired] => 
       [formattedLocationFull] => South Jakarta 
       [formattedRelativeTime] => 12 hari yang lalu 
      ) 

     [1] => stdClass Object 
      (
       [jobtitle] => Quality Assurance & Control 
       [company] => PT Indo Meco Primatama 
       [city] => Depok 
       [state] => JB 
       [country] => ID 
       [formattedLocation] => Depok 
       [source] => CareerBuilder 
       [date] => Fri, 13 Sep 2013 10:18:10 GMT 
       [[onmousedown] => indeed_clk(this, '7414'); 
       [latitude] => -6.384615 
       [longitude] => 106.82967 
       [jobkey] => f1808c40b46eebaa 
       [sponsored] => 
       [expired] => 
       [formattedLocationFull] => Depok 
       [formattedRelativeTime] => 2 hari yang lalu 
      ) 

И мой код

for ($x = 0; $x <= 9; $x++) { 
echo $data[$x]->date; 
} 

Спасибо заранее

+0

Ваш код не пытается сортировать ваш массив. Вам нужно [usort()] (http://www.php.net/manual/en/function.usort.php) с обратным вызовом –

ответ

2

Вы можете передать его в свою собственную функцию сортировки

function sort_by_date($a, $b) { 
    $a = strtotime($a->date); 
    $b = strtotime($b->date); 
    return ($a < $b) ? -1 : 1; 
} 

uasort($array, 'sort_by_date'); 
+0

, то же самое с @george ваш код - это работа .. большое спасибо – johyafa

+0

@johyafa You приветствую, пожалуйста, воздержитесь и выберите ответ :) –

1

использования usort() Функция:

usort($data, function(stdClass $a, stdClass $b) { 
    $aDate = strtotime($a->date); 
    $bDate = strtotime($b->date); 

    if($aDate == $bDate) return 0; 
    return $aDate > $bDate ? 1 : -1; 
}); 
+0

Отличный .. код - это работа, большое спасибо – johyafa

Смежные вопросы