PHP:获得独特的销售额和金额
在一个虚拟数据库中,我有一个用户ID列表和一个产品ID列表(属于他们购买的物品) 数据如下: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
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 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