zoukankan      html  css  js  c++  java
  • 商品规格笛卡尔积PHP

    <?php
        $color = array('red', 'green');
        $size = array(39, 40, 41);
        $local = array('beijing', 'shanghai');
        
        echo "<pre>";
        print_r(combineDika($color, $size, $local));
        
        /**
         * 所有数组的笛卡尔积
         *
         * @param unknown_type $data
         */
        function combineDika() {
            $data = func_get_args();
            $cnt = count($data);
            $result = array();
            foreach($data[0] as $item) {
                $result[] = array($item);
            }
            for($i = 1; $i < $cnt; $i++) {
                $result = combineArray($result,$data[$i]);
            }
            return $result;
        }
         
        /**
         * 两个数组的笛卡尔积
         *
         * @param unknown_type $arr1
         * @param unknown_type $arr2
         */
        function combineArray($arr1,$arr2) {
            $result = array();
            foreach ($arr1 as $item1) {
                foreach ($arr2 as $item2) {
                    $temp = $item1;
                    $temp[] = $item2;
                    $result[] = $temp;
                }
            }
            return $result;
        }
    ?>

    运行结果: Array ( [0] => Array ( [0] => red [1] => 39 [2] => beijing ) [1] => Array ( [0] => red [1] => 39 [2] => shanghai ) [2] => Array ( [0] => red [1] => 40 [2] => beijing ) [3] => Array ( [0] => red [1] => 40 [2] => shanghai ) [4] => Array ( [0] => red [1] => 41 [2] => beijing ) [5] => Array ( [0] => red [1] => 41 [2] => shanghai ) [6] => Array ( [0] => green [1] => 39 [2] => beijing ) [7] => Array ( [0] => green [1] => 39 [2] => shanghai ) [8] => Array ( [0] => green [1] => 40 [2] => beijing ) [9] => Array ( [0] => green [1] => 40 [2] => shanghai ) [10] => Array ( [0] => green [1] => 41 [2] => beijing ) [11] => Array ( [0] => green [1] => 41 [2] => shanghai ) ) https://blog.csdn.net/tf198910/article/details/44957917
  • 相关阅读:
    1.Math函数对象
    1.日期与时间
    使用object literal替换switch
    Array数组去重
    flexbox弹性布局
    web移动端一些常用知识
    解决网页ICON图标无法显示的问题
    观察者模式和发布订阅模式的区别
    JS延迟加载的几种方式
    前端 api 请求缓存方案
  • 原文地址:https://www.cnblogs.com/sgm4231/p/10668686.html
Copyright © 2011-2022 走看看