我基本上有一个脚本,我在其中提取机器列表,然后提取当前在其中的所有库存。如果机器有超过 1 个相同类型的库存(例如驱动器),那么我当前的代码只是将它们附加到一个看起来很差的长字符串中。
相反,我想将库存保存到数组中并跟踪分配的金额。我正在使用 array_key_exists() 来确定该类型是否已添加到数组中。
我的问题是我如何存储计数并在每次找到另一个时增加它,然后当我将其附加到另一个阵列时,重写它,例如"4x 1TB 硬盘驱动器"、"2x 240GB SSD 驱动器"?现在它被添加为"
1TB硬盘1TB硬盘1TB硬盘1TB硬盘"。伪代码:
<?
$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输出
[1]=>
array(3) {
["inv_id"]=>
string(2) "16"
["type_id"]=>
string(1) "2"
["sort_order"]=>
string(1) "0"
}
而不是使用:
if ($invType == "Hard-Drive")
{
if (array_key_exists($invName, $arrDrive))
{
$arrDrive[x]++; //???
}
}
请使用:
if (array_key_exists($item["type_id"], $arrDrive))
{
$arrDrive[$item["type_id"]]++;
}
else
{
$arrDrive[$item["type_id"]] = 1;
}
$arrDrive现在将拥有库存中每种类型的计数($arrDrive在这方面真的不是一个好名字)