使用array_count_values计算数组

时间:2012-12-12 14:09:41

标签: php arrays

我的PHP脚本

    $file_carrito=file("carrito.dat");

    $x=0;

    for($i=0;$i<sizeof($file_carrito);$i++)
    {
    $array_products_1[]=$file_carrito[$i];

    $x++;
    }



echo (array_count_values($array_products_1));  

在这个简单的.dat文件中,存储用户添加的所有产品,并在每种情况下计算每个id和case的产品总数

例如,我可以将一个产品的5个ID和其他4个产品ID放入文件中,最后,这必须将具有相同ID的产品计入存储到de dat文件中

例如:5支铅笔,3把椅子,2张桌子等......

The problem it´s no works : echo (array_count_values($array_productos_1)); 



content of carrito.dat :

p1
p1
p1
p3
p3
p3
p2
p2
p2
p1
p1



With this function of array i want get :

Product p1 ---- (5)
Product p2 ----- (3) , etc

Thank's

2 个答案:

答案 0 :(得分:0)

像这样计算你的价值

$array = array('x', 'x', 'x', 'x', 'y', 'y');
$counts = array();
foreach($array as $value) {
    $counts[$value] = array_key_exists($value, $counts) ? $counts[$value]+1 : 1;
}

print_r($counts);

在你的情况下。数组填充

$array = explode("\n", file_get_contents(...));

答案 1 :(得分:0)

简单方法:

$data = file('carrito.dat');

print_r(array_count_values($data));

它将显示如下内容:

Array
(
    [p1] => 5
    [p3] => 3
    [p2] => 3
)