数据统计整理 现在需要对一张表A进行数据统计,要把A表中的B统计出现了那些类型和这些类型的数量,最后在前台给他输出例如化工(5)工业(10)这种类型,应该如何编写程序求指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你查询出a表中的b放入数组array_count_values函数可以统计数组中所有的值出现的次数 array(7) { [0]=> array(1) { ["trade"]=> string(24) ";医药;农林牧渔;玩" } [1]=> array(1) { ["trade"]=> string(12) "冶金矿产" } [2]=> array(1) { ["trade"]=> string(12) "食品饮料" } [3]=> array(1) { ["trade"]=> string(15) "化工原材料" } [4]=> array(1) { ["trade"]=> string(15) "化工原材料" } [5]=> array(1) { ["trade"]=> string(13) ";化工原料" } [6]=> array(1) { ["trade"]=> string(24) ";纺织皮革;服装;玩" } } 如何把这个数组统计出医药有多少个,农林牧渔有多少个,并把这些保存到一个数组中 $ar = array( array( "trade" => ";医药;农林牧渔;玩" ), array( "trade" => "冶金矿产" ), array( "trade" => "食品饮料" ), array( "trade" => "化工原材料" ), array( "trade" => "化工原材料" ), array( "trade" => ";化工原料" ), array( "trade" => ";纺织皮革;服装;玩"),);foreach($ar as $v) { foreach(split(';', $v['trade']) as $k) { if(empty($k)) $k = '无法识别'; $r[$k]++; }}print_r($r);Array( [无法识别] => 3 [医药] => 1 [农林牧渔] => 1 [玩] => 2 [冶金矿产] => 1 [食品饮料] => 1 [化工原材料] => 2 [化工原料] => 1 [纺织皮革] => 1 [服装] => 1) 那是一样的!你可以帖出 var_export 的结果,而不是 var_dump 的结果。无论多复杂,你都不要自行删改 array(1) { [""]=> int(2) } array(2) { [""]=> int(2) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(1) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(2) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(3) ["�"]=> int(1) } array(3) { [""]=> int(4) ["�"]=> int(3) ["�"]=> int(1) } array(3) { [""]=> int(6) ["�"]=> int(3) ["�"]=> int(1) } 都显示不出来啊 $name = $this->db_product->get_product_name($opts, $this->cache); foreach ($name as &$l) { foreach($l as $v) { foreach(split(';', $v['trade']) as $k) { $r[$k]++; }}var_dump($r); name数组array(7) { [0]=> array(1) { ["trade"]=> string(24) ";医药;农林牧渔;玩" } [1]=> array(1) { ["trade"]=> string(12) "冶金矿产" } [2]=> array(1) { ["trade"]=> string(12) "食品饮料" } [3]=> array(1) { ["trade"]=> string(15) "化工原材料" } [4]=> array(1) { ["trade"]=> string(15) "化工原材料" } [5]=> array(1) { ["trade"]=> string(13) ";化工原料" } [6]=> array(1) { ["trade"]=> string(24) ";纺织皮革;服装;玩" } } 让你帖出 var_export($name) 的结果,你为什么不肯呢? 可以善用一下 array_count_values() 函数不过这个思路要有点转变,建议在解决了问题之后自己另外再花时间学习这个另外,类别不复杂的话,用SQL直接解决也是个好选择 foreach($ar as $v) { foreach(split(';', $v['trade']) as $k) { if(! empty($k)) //不为空才有效 $r[$k]++; }} 我想再问个问题,如果这个数值我要用section循环再前台显示,应该怎么使用section,需要显示成化工(1)这个形式 那是 Smarty 模板引擎了吧?对不起,我是绝不使用它的 从我的示例代码foreach($r as $k=>$v) echo "$k($v)<br />"; 如果把那个结果数组变成这样,你可以使用的话,那也是很方便的了$ar = array( array( "trade" => ";医药;农林牧渔;玩" ), array( "trade" => "冶金矿产" ), array( "trade" => "食品饮料" ), array( "trade" => "化工原材料" ), array( "trade" => "化工原材料" ), array( "trade" => ";化工原料" ), array( "trade" => ";纺织皮革;服装;玩"),);foreach($ar as $v) { foreach(split(';', $v['trade']) as $k) { if(! empty($k)) $r[$k]++; }}$t = array(array_keys($r), array_values($r));print_r($t);Array( [0] => Array ( [0] => 医药 [1] => 农林牧渔 [2] => 玩 [3] => 冶金矿产 [4] => 食品饮料 [5] => 化工原材料 [6] => 化工原料 [7] => 纺织皮革 [8] => 服装 ) [1] => Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 1 [4] => 1 [5] => 2 [6] => 1 [7] => 1 [8] => 1 )) Php 调用COM组件带out参数的方法问题 【求教】如何用纯静态页面开发网站 如何用PHP建立二维数组,并取值 php如何显示数据库中的图片和文字? PHP新手求助,关于PHP和MYSQL结合的问题 如何实现这样的二个表里的查询? 分页传值 大家帮帮忙吧! Windows server 2000 ,PHP+Apache+MySQL模糊查询迷惑! 哪里有免费的php空间??? php 求平均值 mysql数据库导入后显示乱码,这是怎么回事啊?谢谢
array_count_values函数可以统计数组中所有的值出现的次数
array(7) { [0]=> array(1) { ["trade"]=> string(24) ";医药;农林牧渔;玩" } [1]=> array(1) { ["trade"]=> string(12) "冶金矿产" } [2]=> array(1) { ["trade"]=> string(12) "食品饮料" } [3]=> array(1) { ["trade"]=> string(15) "化工原材料" } [4]=> array(1) { ["trade"]=> string(15) "化工原材料" } [5]=> array(1) { ["trade"]=> string(13) ";化工原料" } [6]=> array(1) { ["trade"]=> string(24) ";纺织皮革;服装;玩" } } 如何把这个数组统计出医药有多少个,农林牧渔有多少个,并把这些保存到一个数组中
array( "trade" => ";医药;农林牧渔;玩" ),
array( "trade" => "冶金矿产" ),
array( "trade" => "食品饮料" ),
array( "trade" => "化工原材料" ),
array( "trade" => "化工原材料" ),
array( "trade" => ";化工原料" ),
array( "trade" => ";纺织皮革;服装;玩"),
);foreach($ar as $v) {
foreach(split(';', $v['trade']) as $k) {
if(empty($k)) $k = '无法识别';
$r[$k]++;
}
}
print_r($r);Array
(
[无法识别] => 3
[医药] => 1
[农林牧渔] => 1
[玩] => 2
[冶金矿产] => 1
[食品饮料] => 1
[化工原材料] => 2
[化工原料] => 1
[纺织皮革] => 1
[服装] => 1
)
你可以帖出 var_export 的结果,而不是 var_dump 的结果。
无论多复杂,你都不要自行删改
array(1) { [""]=> int(2) } array(2) { [""]=> int(2) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(1) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(2) ["�"]=> int(1) } array(3) { [""]=> int(2) ["�"]=> int(3) ["�"]=> int(1) } array(3) { [""]=> int(4) ["�"]=> int(3) ["�"]=> int(1) } array(3) { [""]=> int(6) ["�"]=> int(3) ["�"]=> int(1) } 都显示不出来啊
$name = $this->db_product->get_product_name($opts, $this->cache);
foreach ($name as &$l)
{
foreach($l as $v) {
foreach(split(';', $v['trade']) as $k) {
$r[$k]++;
}
}var_dump($r);
不过这个思路要有点转变,建议在解决了问题之后自己另外再花时间学习这个
另外,类别不复杂的话,用SQL直接解决也是个好选择
foreach(split(';', $v['trade']) as $k) {
if(! empty($k)) //不为空才有效
$r[$k]++;
}
}
对不起,我是绝不使用它的
foreach($r as $k=>$v)
echo "$k($v)<br />";
$ar = array(
array( "trade" => ";医药;农林牧渔;玩" ),
array( "trade" => "冶金矿产" ),
array( "trade" => "食品饮料" ),
array( "trade" => "化工原材料" ),
array( "trade" => "化工原材料" ),
array( "trade" => ";化工原料" ),
array( "trade" => ";纺织皮革;服装;玩"),
);foreach($ar as $v) {
foreach(split(';', $v['trade']) as $k) {
if(! empty($k)) $r[$k]++;
}
}$t = array(array_keys($r), array_values($r));
print_r($t);Array
(
[0] => Array
(
[0] => 医药
[1] => 农林牧渔
[2] => 玩
[3] => 冶金矿产
[4] => 食品饮料
[5] => 化工原材料
[6] => 化工原料
[7] => 纺织皮革
[8] => 服装
) [1] => Array
(
[0] => 1
[1] => 1
[2] => 2
[3] => 1
[4] => 1
[5] => 2
[6] => 1
[7] => 1
[8] => 1
))