2017-03-02 105 views
1

我認爲這是一個奇怪的問題得到相同的數組中元素的值:如何當初始化

我不需要答案帶環或推到數組我只是想知道大概的想法

我米試圖TI初始化數組,,但我需要這樣寫的前一個元素,

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'], 
        ), 
     ); 

我需要閱讀的差異元素計數元素..是這樣做的,當初始化數組

謝謝全部

回答

0

沒有,這是不可能的作爲數組技術上不會在該點來定義。實現這一

的一種方法是使用類似array_maphttp://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); 

或者,你可以使用mapCollections https://laravel.com/docs/5.3/collections#method-map

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

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

希望這有助於!

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

我知道,但我不需要重複查詢,並要求有關想法 –