审查生成的目录索引

来自 数组
PHP 8.3.33 高级 6分钟 找出 4处问题

在 API 中使用这段生成的目录索引函数前,对它进行审查。

输入商品的 SKU 保证唯一;应用默认值但让每个商品覆盖默认值,保留零库存,返回以 SKU 为键的映射,并且只公开 sku、name 和 stock。

php
<?php
function buildCatalog(array $products, array $defaults): array
{
    $catalog = [];
    foreach ($products as $product) {
        $sameSkuCount = count(array_filter(
            $products,
            fn(array $candidate): bool => $candidate['sku'] === $product['sku'],
        ));
        if ($sameSkuCount !== 1) {
            throw new InvalidArgumentException('Duplicate SKU');
        }
        $row = $defaults + $product;
        $row['stock'] = max(1, (int) $row['stock']);
        $catalog[$row['sku']] = [
            'sku' => $row['sku'],
            'name' => $row['name'],
            'stock' => $row['stock'],
            'internal_cost' => $row['internal_cost'],
        ];
    }
    return $catalog;
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误