点开工具、字典、anything


2019-07-20

<h1>sku规格信息构造</h1> <p>需要构造的参数</p> <pre><code class="language-php"> [ { "spec_name": "颜色", //规格名称 "spec_value": [ //规格值,数组格式 "黑色", "白色" ] }, { "spec_name": "尺寸", "spec_value": [ "XL", "L" ] }, ]</code></pre> <p>笛卡儿积方式构造</p> <pre><code class="language-php">public function combineSkuSpecs($specInfo) { $count = count($specInfo) - 1; $result = []; if ($count == 0) { foreach ($specInfo[0]['spec_value'] as $specValue) { $result[] = [[ 'spec_name' =&gt; $specInfo[0]['spec_name'], 'spec_value' =&gt; $specValue ]]; } } else { for ($i = 0; $i &lt; $count; $i++) { $tmp = []; if ($i == 0) { $result = array_unique($specInfo[$i]['spec_value']); } foreach ($result as $first) { foreach (array_unique($specInfo[$i + 1]['spec_value']) as $second) { if (is_array($first)) { $tmp[] = array_merge($first, [ [ 'spec_name' =&gt; $specInfo[$i + 1]['spec_name'], 'spec_value' =&gt; $second ] ]); } else { $tmp[] = [ [ 'spec_name' =&gt; $specInfo[$i]['spec_name'], 'spec_value' =&gt; $first ], [ 'spec_name' =&gt; $specInfo[$i + 1]['spec_name'], 'spec_value' =&gt; $second ] ]; } } } $result = $tmp; } } return $result; }</code></pre> <p>构造结果</p> <pre><code class="language-php">[ { "spec"=&gt;[ //库存规格信息 { "spec_name":"颜色", "spec_value":"黑色" }, { "spec_name":"尺寸", "spec_value":"XL" } ] }, { "spec"=&gt;[ { "spec_name":"颜色", "spec_value":"黑色" }, { "spec_name":"尺寸", "spec_value":"L" } ] }, { "spec"=&gt;[ { "spec_name":"颜色", "spec_value":"白色" }, { "spec_name":"尺寸", "spec_value":"XL" } ] }, { "spec"=&gt;[ { "spec_name":"颜色", "spec_value":"白色" }, { "spec_name":"尺寸", "spec_value":"L" } ] } ]</code></pre>

页面列表

ITEM_HTML