这种乱七八糟的数组如何理解

lghyt 发布于 2016/05/14 10:36
阅读 288
收藏 0
PHP

某框架中有一个方法,如下

----------------------------------------------------------------------------------

public function getListWithStoreInfo($condition,$page=null,$order='',$field='*',$limit=''){
        
        $store_list = $this->field($field)->where($condition)->page($page)->order($order)->limit($limit)->select();
        
        if(!empty($store_list)) {
            $model_store = Model('store');
            
            for ($i = 0, $j = count($store_list); $i < $j ; $i++) {
               $store_list[$i]['hot_sales_list'] = $model_store->getHotSalesList($store_list[$i]['shop_store_id'], 5);
               $store_info = $model_store->getStoreInfoByID($store_list[$i]['shop_store_id']);
               $store_list[$i] = array_merge($store_list[$i], $store_info);
            }
        }
        return $store_list;
}

---------------------------------------------------------------------------------------

其中array_merge合并数组,此时就有疑问了,因为绿色标的$store_list[$i]在上文并没有定义,可是定义了一个$store_list[$i]['hot_sales_list']多出了一个键值['hot_sales_list'],即然没有定义合并谁呢,这种乱七八糟的写法正确吗?

假如没有合并$store_list[$i]['hot_sales_list'],那么写它做啥呢?

加载中
0
youfather
youfather
按单词意思看,$store_list 是查询出来的商品列表信息,当查询出不为空时,就把另一个表里查询出来的信息放到 $store_list数组中每个键里面,这样放到同一个数组中,方便显示层取数据
lghyt
lghyt
你的意思 $store_list[$i]['hot_sales_list']即然是数组,那么隐含中就有 $store_list[$i]也是数组喽?
0
技安-幻果
技安-幻果

这种写法属于正确的写法,但是不推荐这种方式。因为阅读起来很困难。

完全可以采用一个中间数组变量做好合并之后在赋予$store_list[$i],这样的好处就是结构很清晰。如果没有合并,他估计也还是得这么去写,因为$store_list[$i]本身就是已经存在数据的数组了,增加$store_list[$i]['hot_sales_list']无疑是对返回的数据方便做后续的处理,或者模板展示等

返回顶部
顶部