从Laravel中的foreach循环合并数组 [英] Merge Array from foreach loop in laravel

查看:109
本文介绍了从Laravel中的foreach循环合并数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

跟随我的代码.我试图通过单击复选框获取数组.我有阵列.但有两个不同.请检查我的控制器.我需要当我单击2个不同的复选框时,它将得到两个不同的数组.最终结果得到合并本身之后.我试过了,但到哪里我错了.请帮忙.

Following my code.. i am trying to get array by clicking checkbox. i got array. but in two different. please check my controller. i need when i click on 2 different checkbox it will get two different array. after final result get merge itself. i tried but get where i am wrong. please help.

复选框

<li class="lib">
  <label><input class="genreTag"  id="{{ $genreTag->id}}" data-slug="mood-emotion" type="checkbox" name="" value="{{{ $genreTag->name }}}">{{{ $genreTag->name }}} ({{count(json_decode($genreTag->elements, true))+ count(json_decode($genreTag->tracks, true))}}) </label>
</li>

<li class="lib">
  <label><input class="genreTag"  id="{{ $genreTag->id}}" data-slug = "music-genre" type="checkbox" name="" value="{{{ $genreTag->name }}}">{{{ $genreTag->name }}} ({{count(json_decode($genreTag->elements, true))+ count(json_decode($genreTag->tracks, true))}}) </label>
</li>


//Sidebar Filter Genre Tracks
$(document).ready(function () {
    $('.genreTag').on('change', function (e)
    {
        displayLoader();
        $('input.filter-playlist').each(function() {
            var $this = $(this);
            $this.prop('checked', false);
            $this.parent().find('> div').removeClass('chk-checked').addClass('chk-unchecked');
        });

        e.preventDefault();
        id = [];
        slug  = [];
        $('.genreTag:checked').each(function()
        {
            id.push($(this).attr('id'));
            slug.push($(this).attr('data-slug'));
        });

        $.get("/genre-tags/", {id: id,slug: slug}, function(data)
        {
            hideLoader();
            refreshedPage = $(data);
            newDemo = refreshedPage.find(".libraryWrapper, .albumWrapper, .composersWrapper, .albumsListWrapper, .albumsWrapper, .accountWrapper, .distributionsWrapper, .PaymentsWrapper, .contactWrapper, .contractsWrapper, .toolsWrapper, .blogWrapper, .pageWrapper, .cartWrapper, .pageWrapper").html();

            $('.libraryWrapper, .albumsWrapper, .albumWrapper, .composersWrapper, .albumsListWrapper, .accountWrapper, .distributionsWrapper, .PaymentsWrapper, .contactWrapper, .contractsWrapper, .toolsWrapper, .blogWrapper, .pageWrapper, .cartWrapper, .pageWrapper').html(newDemo);
            activatePlayer()
            initTrackInfo();
        });
    });
});


控制器

public function genresFilter ()
    {
        $sortBy = Input::get('sortBy', 'id');
        $dir    = Input::get('direction', 'desc');

        $orderBy = [
                        'tracks'=>[   'order_by'=>$sortBy, 'direction'=>$dir ]
                    ];

        $id = Input::get('id');
        $slug = Input::get('slug');

        if(!is_array($id)) {
            $id = []; 

            $tag = [];

        } else {

            Tag::with('tracks', 'elements')
    ->whereIn('category_id', [$genresCat->id, $moodCat->id, $productionCat->id, $vocalCat->id])
    ->whereIn('id', $id)
    ->whereBetween('created_at', [$dateS, $dateE])
    ->get();
        }
        echo "<pre>";
        print_r($tag->toArray());
        die();

        $this->layout->content = View::make('public.tags.genres', compact('tag'));
    }

推荐答案

您可以使用array_merge()php函数并合并两个数组.

You can use array_merge() php function and merge two array..like this

 $result=array_merge($id,$slug);

这篇关于从Laravel中的foreach循环合并数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆