2017-04-14 1 views
3

foreach 루프를 사용하여 모든 개체를 인쇄하는 구성 변수가 있습니다. 날짜를 기준으로 인쇄물을 분류하는 방법이 있습니까? 다음은 객체를 인쇄하기위한 코드입니다. 내가 여기 $press['date']laravel의 날짜를 기반으로 구성 변수 정렬

@foreach (config('constants.pressMetadata') as $press) 
    <div> 
     <p id="quote">{{ $press['title'] }}</p> 
     <div class="more label"><a id="link" href="{{$press['url']}}">-{{$press['company']}}: {{$press['date']}}</a></div> 
     <hr> 
    </div> 
@endforeach 

에 기반을 정렬 할 것은 constants.pressMetadata입니다 :

'pressMetadata'=>[ 
     "AARP" => [ 
      "id" => 1, 
      "company" => "AARP", 
      "title" => "Updating Your Résumé for the Digital Age", 
      "url" => "http://www.aarp.org/work/job-hunting/info-2016/give-resume-a-digital-reboot.html", 
      "date" => "Sep 9, 2016" 
     ], 
     "Business Insider" => [ 
      "id" => 2, 
      "company" => "Business Insider", 
      "title" => "8 things you should always include on your résumé", 
      "url" => "http://www.businessinsider.com/what-to-always-include-on-your-resume-2016-1", 
      "date" => "Jan 28, 2016" 
     ], 
     "Morning Journal" => [ 
      "id" => 3, 
      "company" => "Morning Journal", 
      "title" => "5 things you missed: Google updates search, Jobscan and more", 
      "url" => "http://www.morningjournal.com/article/MJ/20140124/NEWS/140129366", 
      "date" => "Jan 24, 2014" 
     ], 
], 
+0

[PHP가 날짜를 포함하는 요소로 다차원 배열 정렬] (http://stackoverflow.com/questions/2910611/php-sort-a-multidimensional-array-by-element-containing-date) – mickmackusa

+0

질문을 게시하기 전에 기존 답변을 검색하지 않으면 자원으로 가치를 감합니다. 얼마나 많은 답변이 도움이 되었는 지보십시오. http://stackoverflow.com/search?q=how+to+sort+multidimensional+array+by+date – mickmackusa

+0

downvoted 연구 및 자체 해결 노력을 보이지 않았기 때문에 downvoted – mickmackusa

답변

1

당신이 꽤 쉽게 할 Laravel의 컬렉션을 사용할 수 있어야합니다을 반영하기 위해 변경됩니다. collect()에 대한 호출에서 config()으로 전화를 걸어 놓은 다음 컬렉션의 sortBy() 메서드를 사용하여 strtotime() 'date'키 값으로 레코드를 정렬합니다. 다른 방법으로 정렬하려면 sortByDesc() 메서드를 사용하십시오.

@foreach (collect(config('constants.pressMetadata'))->sortBy(function ($press) { return strtotime($press['date']); }) as $press) 

Documentation here.

+0

고마워, 내가이 일을 laravel 방법을 알았어, 난 그냥 바닐라 PHP를 가리 키지 않았 어떤 문서를 찾을 수 없습니다 – Aaron

0

당신은 PHP의 usort 기능을 사용할 수 있습니다.

다음 코드는 PHP 매뉴얼에서 가져온 사용자의 요구

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

usort(config('constants.pressMetadata'), "cmp"); 
+0

수동 코드 만 복사하여 붙여 넣으려면 링크를 주석으로 남겨 둡니다. 그렇지 않으면 정확한 질문에 맞게 답변을 편집하십시오. 이것은 다차원 배열입니다. – mickmackusa

+0

모바일에서 코드를 수정 해 보았습니까? –

+0

이 코드는 예상 한 결과를 제공하지 않습니다. 게시하기 전에 테스트하지 않았습니다. 당신이 대답을 제공한다면 일을하십시오. 그렇지 않으면 대답을 삭제하고 계속 진행하십시오. – mickmackusa

관련 문제