因此,代码的结果是:

Hotel: 20
Hotel: 210
Food: 29.04
Fuel: 186
Food: 55

Array ( 
    [0] => Array ( [Category] => Hotel [Price] => 10 [Quantity] => 2 ) 
    [1] => Array ( [Category] => Hotel [Price] => 70 [Quantity] => 3 ) 
    [2] => Array ( [Category] => Food [Price] => 1.21 [Quantity] => 24 ) 
    [3] => Array ( [Category] => Fuel [Price] => 31 [Quantity] => 6 ) 
    [4] => Array ( [Category] => Food [Price] => 5.5 [Quantity] => 10 ) 
)

如您所见,我将数量和价格相乘,现在我希望添加相同类型的类别,如下所示:

Hotel: 230
Food: 84.04
Fuel: 186

但我一直有字符串+int(或类似的东西)的问题.所以,请告诉我我做错了什么.代码如下:

<!DOCTYPE html>
<html>
  
<body>
    <center>
        <h1>DISPLAY DATA PRESENT IN CSV</h1>
        <h3>CSV File</h3>
  
        <?php
        echo "<html><body><center><table>\n\n";
        // $fileName = $_POST['csvfile'];
        // $fileName = "./test.csv";
        // $summary = array();
        $i = 0;
        // $index = null;

        // $file = fopen($fileName, "r");

        $array = $fields = array();
        $handle = @fopen("test.csv", "r");
        if($handle){
            while(($row = fgetcsv($handle, 4096)) !== False){
                if(empty($fields)){
                    $fields = $row;
                    continue;
                }
                foreach($row as $k=>$value){
                    $array[$i][$fields[$k]] = $value;
                }
                $i++;
            }
            if(!feof($handle)){
                echo "Error: unexpected fgets() fail\n";
            }
            fclose($handle);
        }
        foreach($array as $key => $value){
            for($a = 0; $a < 1; $a++){
                if($value['Category'] == $value['Category']){
                    echo $value['Category'] . ": " . ($value['Quantity'] * $value['Price']) . "<br>";
                }
                else{
                echo $value['Category'] . ": " . ($value['Quantity'] * $value['Price']) . "<br>";
                }
            }
        }
        echo "<br>";
        print_r($array);

        $sumArray = array();
        foreach($array as $k=>$subArray){
            foreach($subArray as $key=>$value){
                $sumArray['Category'] += $value;
            }
        }
        print($sumArray);

        echo "\n</table></center></body></html>";
        ?>
    </center>
</body>
  
</html>

推荐答案

你需要在创建$sumArray的时候将价格和数量相乘.

$sumArray = [];
foreach ($array as $value) {
    $cat = $value['Category'];
    if (!isset($sumArray[$cat])) {
        $sumArray[$cat] = 0;
    }
    $sumArray[$cat] += $value['Price'] * $value['Quantity'];
}

Php相关问答推荐

添加自定义Metabox到WooCommerce管理订单,启用HPOS

dockerized laravel服务器拒绝POST请求

Laravel POST方法返回状态:POST方法上不允许使用405方法

PHP -多维数组到一维数组

在WooCommerce中设置带有国家/地区和年份前缀的顺序序号

在PHP中处理Linux输入事件(/dev/input/Event*)

登录后重定向在WooCommerce中购买产品的用户

将购物车按钮重定向到Checkout-Wooccommerce

curl_close()未从PHP 8开始写入CURLOPT_COOKIEJAR会话文件

打折时更改 Woocommerce 产品名称

Woocommerce API - 图像问题

如何在 PHP 中以 hh:mm:ss 格式获取两个 strtotime datetime/s 之间的时间差

laravel Eloquent 模型的问题

如何在 Woocommerce 中自动删除旧的已完成订单

有没有办法获取触发流操作的页面的 URI?

Google Drive API:为什么使用服务帐户在下载文件时会将我带到 Google Drive 登录窗口?

如何通过帖子自定义元数据进行查询

基于WooCommerce中的产品变体自定义感谢页面跳转

如何将子查询结果添加到学说 2 中主查询的末尾?

标头内容类型:image/jpeg 无效