2017-03-02 2 views
1

을 초기화 할 때와 동일한 배열의 요소의 값을받는 방법 : 내가 루프 대답이 필요하거나 배열에 밀어 해달라고나는 그것이 이상한 질문을 생각

난 단지

내가 '아이디어에 대해 궁금하네요 m ..

return $recourd_list = array(
       'clients'=> array(
        'route' => 'clients.index', 
        'title' => 'fullname', 
        'list' => Clients::orderBy('id', 'desc')->take(5)->get(), 
        'count' => Clients::count(), 
        'class' => 'bgm-lightgreen', 
        'diff' => 5 - $recourd_list['clients']['count'], 
        ), 

       'sliders'=> array(
        'route' => 'sliders', 
        'title' => 'title', 
        'list' => Sliders::orderBy('id', 'desc')->take(5)->get(), 
        'count' => Sliders::count(), 
        'class' => 'bgm-rightBlue Oil-color', 
        'diff' => 5 - $recourd_list['sliders']['count'], 
       ), 
       'sponsors'=> array(
        'route' => 'sponsors.index', 
        'title' => 'title', 
        'list' => Sponsors::orderBy('id', 'desc')->take(5)->get(), 
        'count' => Sponsors::count(), 
        'class' => 'bgm-nave dark-green', 
        'diff' => 5 - $recourd_list['sponsors']['count'], 
        ), 
       'packages'=> array(
        'route' => 'packages', 
        'title' => 'title', 
        'list' => Packages::orderBy('id', 'desc')->take(5)->get(), 
        'count' => Packages::count(), 
        'class' => 'bgm-bluegray', 
        'diff' => 5 - $recourd_list['packages']['count'], 
        ), 
       'event_schedule'=> array(
        'route' => 'event_schedule.index', 
        'title' => 'title', 
        'list' => EventSchedule::orderBy('id', 'desc')->take(5)->get(), 
        'count' => EventSchedule::count(), 
        'class' => 'bgm-orange', 
        'diff' => 5 - $recourd_list['event_schedule']['count'], 
        ), 
     ); 

내가 DIFF 요소 카운트 소자를 판독해야 TI 배열을 초기화하려고 ,,하지만 이런 이전 요소를 판독해야하는 것을 할 그렇게되면 초기화 배열

감사합니다 모두

답변

0

아니, 이것이 불가능 배열은 기술적으로 그 시점에서 정의되지 않을 것입니다.

이것을 달성하는 한 가지 방법은 array_map과 같은 것을 사용하는 것입니다. http://php.net/manual/en/function.array-map.php

$recourd_list = array(
    'clients'=> array(
     'route' => 'clients.index', 
     'title' => 'fullname', 
     'list' => Clients::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Clients::count(), 
     'class' => 'bgm-lightgreen', 
    ), 

    'sliders'=> array(
     'route' => 'sliders', 
     'title' => 'title', 
     'list' => Sliders::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Sliders::count(), 
     'class' => 'bgm-rightBlue Oil-color', 
    ), 
    'sponsors'=> array(
     'route' => 'sponsors.index', 
     'title' => 'title', 
     'list' => Sponsors::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Sponsors::count(), 
     'class' => 'bgm-nave dark-green', 
    ), 
    'packages'=> array(
     'route' => 'packages', 
     'title' => 'title', 
     'list' => Packages::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Packages::count(), 
     'class' => 'bgm-bluegray', 
    ), 
    'event_schedule'=> array(
     'route' => 'event_schedule.index', 
     'title' => 'title', 
     'list' => EventSchedule::orderBy('id', 'desc')->take(5)->get(), 
     'count' => EventSchedule::count(), 
     'class' => 'bgm-orange', 
    ), 
); 

다음

return array_map(function ($item) { 
    $item['diff'] = $item['count'] - 5; 

    return $item; 
}, $recourd_list); 

또는이 도움이 Collections https://laravel.com/docs/5.3/collections#method-map

return collect($recourd_list)->map(function ($item) { 
    $item['diff'] = $item['count'] - 5; 

    return $item; 
})->toArray(); 

희망과 map를 사용할 수 있습니다!

0

짧은 대답 : 아니요.

하지만이기 때문에, 초기화시에, 백작을 정의, 왜 이렇게하지 :

전체 예와
'diff' => 5 - Clients::count(), 

그래서이 :

return $recourd_list = array(
    'clients' => array(
     'route' => 'clients.index', 
     'title' => 'fullname', 
     'list' => Clients::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Clients::count(), 
     'class' => 'bgm-lightgreen', 
     'diff' => 5 - Clients::count(), 
    ), 

    'sliders' => array(
     'route' => 'sliders', 
     'title' => 'title', 
     'list' => Sliders::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Sliders::count(), 
     'class' => 'bgm-rightBlue Oil-color', 
     'diff' => 5 - Sliders::count(), 
    ), 
    'sponsors' => array(
     'route' => 'sponsors.index', 
     'title' => 'title', 
     'list' => Sponsors::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Sponsors::count(), 
     'class' => 'bgm-nave dark-green', 
     'diff' => 5 - Sponsors::count(), 
    ), 
    'packages' => array(
     'route' => 'packages', 
     'title' => 'title', 
     'list' => Packages::orderBy('id', 'desc')->take(5)->get(), 
     'count' => Packages::count(), 
     'class' => 'bgm-bluegray', 
     'diff' => 5 - Packages::count(), 
    ), 
    'event_schedule' => array(
     'route' => 'event_schedule.index', 
     'title' => 'title', 
     'list' => EventSchedule::orderBy('id', 'desc')->take(5)->get(), 
     'count' => EventSchedule::count(), 
     'class' => 'bgm-orange', 
     'diff' => 5 - EventSchedule::count(), 
    ), 
); 
+0

나는 그것을 알고 있지만 나는 그 질문을 복제하고 아이디어에 대해 물어볼 필요가 없다. –

관련 문제