单独获取值而不是共同进入foreach循环

时间:2018-05-22 07:17:01

标签: php codeigniter

这里我有两张桌子请看看

enter image description here

enter image description here

第一个表annotate有部门详细信息,第二个表department有位置详细信息。为了获得location_id的相应值,我得到的代码就像这样

locations

通过使用此代码,我得到了这样的结果 enter image description here

我希望我的结果是这样的 enter image description here

2 个答案:

答案 0 :(得分:2)

除了你应该使用适当的数据库函数之外 - 这应该可行。

foreach ($detail as $s)
{
    $arrData = [];
    foreach ($locations as $location)
    {
        if (!empty($s->location_id))
        {
            if (in_array($location->id, explode(',',$s->location_id)))
            {
                $arrData[] = $location->location_name;
            }
        }
    }

    if (!empty($arrData))    $s->Location = implode(', ', $arrData);
}
print_r($detail);

答案 1 :(得分:0)

这里的解决方案是您需要创建第三个const SinglePost = Vue.component('single-post-template', { props:['posts'], template: `<div class="cell medium-8"> <div class="grid-x grid-margin-x"> <p>Single Post here</p> </div> </div>` }); 表。您的location_id不是非常适合数据库,因为它必须处理字段中的每个元素。想象一下,如果你需要在location_id字段中添加另一个元素?这变得很困难。

您需要创建一个类似于:

的表格

const routes = [ { path: '/', component: HomePostList, props: true }, { path: '/post/:postId', name: 'post', component: SinglePost } ]; const router = new VueRouter({ routes }); new Vue({ el: '#app', router, data() { return{ posts: [], searchTerm:'', searchPosts:[], currentRoute: window.location.pathname } }, created (){ var $this = this; axios .get(apiRoot + 'posts?_embed') .then(function (response) { $this.posts = response.data; } ) }, methods: { loadMorePosts: function(){ var $this = this; axios .get(apiRoot + 'posts?_embed') .then(function (response) { $this.posts = response.data; } ) }, }, computed:{ }, });

然后,您可以使用更好的查询来获取所需的数据。