PHP:获得独特的销售额和金额

PHP:获得独特的销售额和金额,php,Php,在一个虚拟数据库中,我有一个用户ID列表和一个产品ID列表(属于他们购买的物品) 数据如下: 1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54 代表:UserID:ProductID 从以上数据可以看出: 用户Id1已销售3次 用户Id3已销售2次 用户Id7已售出1张 用户Id4已售出1张 用户Id76已售出1张 我正在努力获取结果,以便在表格中显示它们: User ID | # Sales ____________________ 1

在一个虚拟数据库中,我有一个用户ID列表和一个产品ID列表(属于他们购买的物品)

数据如下:

1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54
代表:UserIDProductID

从以上数据可以看出:

用户Id1已销售3次

用户Id3已销售2次

用户Id7已售出1张

用户Id4已售出1张

用户Id76已售出1张

我正在努力获取结果,以便在表格中显示它们:

User ID   |  # Sales
____________________

1            3
3            2
7            1
4            1
76           1
____________________

Unique Users (5)
Total Sales (8)
目前我有

$data = "1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54";
$data = explode(",", $data);

$result = array();
foreach ($data as $value) {
  $d_array = explode(":", $value);
   foreach ($d_array as $key => $value) {
    echo "<br/> Use: " .$key . "Item: ". $value; 
   }
}
问题。 如何获得唯一的用户数量和总销售额?

试试以下方法:

$data = "1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54";
$data = explode(",", $data);

$result = array();
foreach ($data as $value) {
  $d_array = explode(":", $value);
  if (count($d_array) == 2)
    echo "<br/> Use: " .$d_array[0] . "Item: ". $d_array[1]; 
}
$data=“1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54”;
$data=分解(“,”,$data);
$result=array();
foreach(数据为$value){
$d_数组=分解(“:”,$value);
if(计数($d_数组)==2)
echo“
使用:.$d_数组[0]”。项:.$d_数组[1]; }

Explode函数是将字符串分解为数组项,而不是名称-值对。

我能想到的最简单的方法就是在打印用户时将用户数加起来

像这样:

$data=“1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54”;
$data=分解(“,”,$data);
$totalSalesNr==$totalSalesAmnt=0;
$result=$users=array();
foreach(数据为$value){
$d_数组=数组();
parse_str(str_replace(“:”,“=”,$value),$d_数组);
foreach($key=>$value的d_数组){
$totalSalesNr++;$totalSalesAmnt+=$value;
如果(!in_数组($key,$users))$users[]=$key;
echo“
用户:.$key.”项:.$value; } } echo“
用户总数:”。计数($users)。“总销售额:$totalSalesNr(金额:$totalSalesAmnt)”;
所以你想

唯一的用户数量和总销售额

然后你可以像这样施魔法:

$string = "1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54";
$arr = explode(",", $string);
$users = 0;
$sales = 0;
foreach($arr as $pair)
{
   $pairarr = explode(":", $pair);
   $users += intval($pairarr[0]);
   $sales += intval($pairarr[1]);
}
echo "There are {$users} Users, which made a total amount of {$sales} Sales.";

在ForEach循环中,我们可以满足您的需求

$data = "1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54";
$data = explode(",", $data);

$dataItem = array();

foreach ($dataItem as $item) {
    $uid = explode(":", $item);
    array_push($dataItem, $uid[0]);
}

foreach (array_unique($dataItem) as $item) {
    $count = 0;
    foreach ($dataItem as $subitem) {
        if($item == $subitem)
            $count++;
    }
    echo "<br/> User ID: " .$item . "Sales: ". $count; 
}
$data=“1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54”;
$data=分解(“,”,$data);
$dataItem=array();
foreach($dataItem作为$item){
$uid=分解(“:”,$item);
数组_push($dataItem,$uid[0]);
}
foreach(数组_唯一($dataItem)作为$item){
$count=0;
foreach($dataItem作为$subitem){
如果($item==$subitem)
$count++;
}
echo“
用户ID:.$item.”销售:.$count; }
我想你在找这个answe

这样,您将获得每个用户拥有的所有项目 结果数组上的键将是用户,值将是每个用户拥有的项

foreach ($data as $value) {
        $d_array = explode(":", $value);

            if (isset($result[trim($d_array[0])] ) ){
                $result[trim($d_array[0])] .= trim($d_array[1]) . ' | '; 
            }else{
                $result[trim($d_array[0])] ='Items: ' .$d_array[1] . ' | '; 
            }
        }
        print_r($result); 
对于总销售额,您可以简单地

    $data = '1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54'; 
    $data = explode(",", $data);
    $count = count($data); // total sales
    print_r($count) ;
输出

销售

希望这能有所帮助

尝试以下方法:

$data = "1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54";
$data = explode(",", $data);

$result = array();
foreach ($data as $value) {
    $d_array = explode(":", $value);
    if(isset($result[$d_array[0]]))
        $result[$d_array[0]] +=1;
    else
        $result[$d_array[0]] = 1;
}
$user_unique = count($result);
$total = count($data);


var_dump($result);
var_dump($total);
var_dump($user_unique);
结果呢

array (size=5)
 1 => int 3
 3 => int 2
 7 => int 1
 4 => int 1
 76 => int 1

int 8
int 5

这将返回用户总数8。和sales 894:/我想要总用户数:5和总销售额8:/啊,好的,我没有注意到,有用户不止一次被列出:/抱歉。嗯,好的,然后我会编辑答案^^
Array
(
    [1] => Items: 54 | 54 | 54 | 
    [3] => Items: 54 | 88 | 
    [7] => Items: 234
    [4] => Items: 344
    [76] => Items: 12
)
Total Sales
8
$data = "1:54,3:54,3:88,7:234,4:344,1:54,76:12,1:54";
$data = explode(",", $data);

$result = array();
foreach ($data as $value) {
    $d_array = explode(":", $value);
    if(isset($result[$d_array[0]]))
        $result[$d_array[0]] +=1;
    else
        $result[$d_array[0]] = 1;
}
$user_unique = count($result);
$total = count($data);


var_dump($result);
var_dump($total);
var_dump($user_unique);
array (size=5)
 1 => int 3
 3 => int 2
 7 => int 1
 4 => int 1
 76 => int 1

int 8
int 5