我基本上有一个脚本,在这个脚本中,我会拉出一个机器列表,然后把它们中当前的所有库存都提取出来。如果机器有超过1种相同类型的库存(例如驱动器),那么我当前的代码只是将它们附加到一个长字符串中,这看起来非常糟糕。
相反,我想将库存保存到数组中,并跟踪分配的数量。我使用array_key_exists()来确定该类型是否已经添加到数组中。
我的问题是如何在找到另一个数组时存储计数并增加计数,然后当我将其追加到另一个数组时,重写它,如“4x1TB硬盘驱动器”、“2x240GB SSD驱动器”?现在,它被添加为"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"
}发布于 2014-11-27 00:57:14
而不是使用:
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确实不是一个好名字)
https://stackoverflow.com/questions/27160961
复制相似问题