为了账号安全,请及时绑定邮箱和手机立即绑定

对 PHP 数组进行分组并获取最大值和最大值的总和

对 PHP 数组进行分组并获取最大值和最大值的总和

PHP
郎朗坤 2023-06-24 15:34:23
我有发布数据表单,需要按值进行数组分组,选择最大值和总和最大值我有一个想法,但我无法获得正确的值。数组如下,HTML 代码位于底部Array(    [company] => Array        (            [0] => ABC            [1] => BBC            [2] => BBC            [3] => ABC        )    [price] => Array        (            [0] => 10            [1] => 5            [2] => 20            [3] => 15        )    [submit] => Submit)输出:-1-ABC-104-ABC-15 …….Max price 152-BBC-53-BBC-20 ……. Max price 20Total Price 35Html 形式:-<form action="?" method="post" name="form1" id="form1">      Company: <input name="company[]" type="text" id="company[]" value="ABC"><br>      Price: <input name="price[]" type="text" id="price[]" value="10">      <br>      Company: <input name="company[]" type="text" id="company[]" value="BBC"><br>      Price: <input name="price[]" type="text" id="price[]" value="5">      <br>      Company: <input name="company[]" type="text" id="company[]" value="BBC"><br>      Price: <input name="price[]" type="text" id="price[]" value="20">      <br>      Company: <input name="company[]" type="text" id="company[]" value="ABC"><br>      Price: <input name="price[]" type="text" id="price[]" value="15">      <br>      <input type="submit" name="submit" id="submit" value="Submit"></form>
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

$comapy = array("ABC","BBC","BBC","ABC");

$price  = array(10,5,20,15);


//Group Your data Here ABC[10,15] ..


$group = array();

foreach($comapy as $key=>$val){

     $group[$val][] = $price[$key];

}


// this loop for check the max number and count total price

$data   = array();

$total  = 0;

foreach($group as $key=>$val){

    $data[][$key] = $key."-".current($val);

    $data[][$key] = $key."-".max($val)." Max price : ".max($val);

    $total        +=max($val);

}


// this foreach to convert your data to string

$result = "";

foreach($data as $key){

    $result .= "\n".current($key);

}

// and show your data like string

print_r($result);

print_r("\nTotal Price ".$total);


/**

 result :

 

 ABC-10

 ABC-15 Max price : 15

 BBC-5

 BBC-20 Max price : 20

 Total Price 35


 //*************If you have more than 4 data in your array remplace foreach 

 $groups with this code


 foreach($group as $key=>$val){

    for($i=0;$i<count($val);$i++){

       if($val[$i]!==max($val))

       $data[][$key] = $key."-".$val[$i];

    }

    $data[][$key] = $key."-".max($val)." Max price : ".max($val);

    $total        +=max($val);

 }


 **/


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信