首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用数组键=>值跟踪项目计数

使用数组键=>值跟踪项目计数
EN

Stack Overflow用户
提问于 2014-11-26 23:59:41
回答 1查看 140关注 0票数 1

我基本上有一个脚本,在这个脚本中,我会拉出一个机器列表,然后把它们中当前的所有库存都提取出来。如果机器有超过1种相同类型的库存(例如驱动器),那么我当前的代码只是将它们附加到一个长字符串中,这看起来非常糟糕。

相反,我想将库存保存到数组中,并跟踪分配的数量。我使用array_key_exists()来确定该类型是否已经添加到数组中。

我的问题是如何在找到另一个数组时存储计数并增加计数,然后当我将其追加到另一个数组时,重写它,如“4x1TB硬盘驱动器”、“2x240GB SSD驱动器”?现在,它被添加为"1TB硬驱动1TB硬盘驱动器“。

伪码:

代码语言:javascript
运行
复制
<?

$row = array();
$arrDrive = array();

foreach ($inventory as $item)
{
    $invName = getInventoryName($dp_conn, $item["inv_id"]);
    $invType = getInventoryTypeName($item["type_id"], $dp_conn);

    if ($invType == "Hard-Drive")
    {
        if (array_key_exists($invName, $arrDrive))
        {
            $arrDrive[x]++; //???
        }
    }
}

// Get count of each type of drive and reformat it to 2x DRIVE NAME
$display = $arrDrive[count] . "x " . $arrDrive[Name];
array_push($row, $display);

?>

$inventory输出应请求

代码语言:javascript
运行
复制
  [1]=>
  array(3) {
    ["inv_id"]=>
    string(2) "16"
    ["type_id"]=>
    string(1) "2"
    ["sort_order"]=>
    string(1) "0"
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-27 00:57:14

而不是使用:

代码语言:javascript
运行
复制
if ($invType == "Hard-Drive")
{
    if (array_key_exists($invName, $arrDrive))
    {
        $arrDrive[x]++; //???
    }
}

请使用:

代码语言:javascript
运行
复制
if (array_key_exists($item["type_id"], $arrDrive))
{
    $arrDrive[$item["type_id"]]++;
}
else
{
    $arrDrive[$item["type_id"]] = 1;
}

$arrDrive现在将对库存中的每一种类型进行计数(在这方面,$arrDrive确实不是一个好名字)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27160961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档