商品SKU规格数据处理转换(数组)

浏览:1568 发布日期:2018/01/09 分类:技术分享 关键字: array
需求如下:
1、将上图转化成下图结果
2、可横向及纵向添加个数



第一种解决思路:
这种思路有一个前提:只能不带键的索引数组$arr = [
    0=>['红','黄','绿'],
];

function main($arr){
    $max = count($arr);
    if($max > 1){
        for ($i=0;$i<=$max-2;$i++){
            $arr[$i+1] = _inner($arr[$i], $arr[$i+1]);
        }
        return $arr[$max-1];
    }else{
        foreach ($arr as $k => $v){
            for ($i=1;$i<=count($v);$i++){
                $rst[][] = $v[$i-1];
            }
        }
        return $rst;
    }
}

function _inner($arr1, $arr2){
    foreach ($arr1 as $k => $v){
        foreach($arr2 as $key => $val){
            if(is_array($v)){
                $temp = $v;
                array_push($temp, $val);
                $rst[] = $temp;
                unset($temp);
            }else{
                $rst[] = [$v, $val];
            }
        }
    }
    return $rst;
}
第二种解决思路:
先判断数组的数量count($arr),然后根据数量分别写出不同的结果(代码量太大,不在这里显示了)
最佳答案
评论( 相关
后面还有条评论,点击查看>>