php 统计二维数组中某个相等值的总个数,并且组合成一个新的数组 比如这样的,我想将这个数组里面 m_id 相等数组元素再组合成一个新的数组:效果图如下:php 多维数组 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 举例时要自圆其说,不然会产生误解原始数据中并没有:'sv_id' => 5, 'mid' => 0'sv_id' => 9, 'mid' => 3的项,结果中是如何出来的? <?php $arr=array( array( 'sv_id'=>1, 'm_id'=>1, 'sv_question1'=>20 ), array( 'sv_id'=>2, 'm_id'=>2, 'sv_question1'=>10 ), array( 'sv_id'=>3, 'm_id'=>1, 'sv_question1'=>20 ), array( 'sv_id'=>4, 'm_id'=>3, 'sv_question1'=>20 ), array( 'sv_id'=>5, 'm_id'=>2, 'sv_question1'=>10 ) );//var_dump($arr);$ar=array();foreach($arr as $v){ if(empty($ar) || !in_array($v,$ar)){ $ar[$v['m_id']][$v['sv_id']]=$v; }else{ foreach($ar as $ka=>$va){ if($ka==$v['m_id']){ $ar[$ka][$v['sv_id']]=$v; } } }}echo "<pre>";var_dump($ar);你复制运行一下看是不是你要的效果。效果图: 不考虑你多出的项目(我无法臆造)$ar = array( array( 'sv_id' => 1, 'mid' => 1, 'sv_question1' => 20 ), array( 'sv_id' => 2, 'mid' => 2, 'sv_question1' => 10 ), array( 'sv_id' => 3, 'mid' => 1, 'sv_question1' => 20 ), array( 'sv_id' => 4, 'mid' => 3, 'sv_question1' => 20 ), array( 'sv_id' => 5, 'mid' => 2, 'sv_question1' => 20 ),);$res = array();foreach($ar as $item) { $res[$item['mid']][$item['sv_id']] = $item;}print_r($res);Array( [1] => Array ( [1] => Array ( [sv_id] => 1 [mid] => 1 [sv_question1] => 20 ) [3] => Array ( [sv_id] => 3 [mid] => 1 [sv_question1] => 20 ) ) [2] => Array ( [2] => Array ( [sv_id] => 2 [mid] => 2 [sv_question1] => 10 ) [5] => Array ( [sv_id] => 5 [mid] => 2 [sv_question1] => 20 ) ) [3] => Array ( [4] => Array ( [sv_id] => 4 [mid] => 3 [sv_question1] => 20 ) )) 额,是,sorry 我写错,少了一个下划线 m_id 写成了mid PHP 写文件,形成一个shell文件,去掉^M php如何从html里把所有的邮件地址抽取出来 有没有好点的PHP生成静态网页的代码? 怎么返回结果? mysql数据库表中如何自动修改某字段 PHP如何像ASP一样可以禁止页面缓存? 我的php+mysql出现的问题,谢谢! 子程序中不能调用表单中提交过来的变量么? 一个有关cookies的问题? 想在PHP下调xp zend studio出现隐藏符号,求助! ph该怎么处理高并发的搜索请求?希望给点思路
'sv_id' => 5, 'mid' => 0
'sv_id' => 9, 'mid' => 3
的项,结果中是如何出来的?
$arr=array(
array(
'sv_id'=>1,
'm_id'=>1,
'sv_question1'=>20
),
array(
'sv_id'=>2,
'm_id'=>2,
'sv_question1'=>10
),
array(
'sv_id'=>3,
'm_id'=>1,
'sv_question1'=>20
),
array(
'sv_id'=>4,
'm_id'=>3,
'sv_question1'=>20
),
array(
'sv_id'=>5,
'm_id'=>2,
'sv_question1'=>10
)
);//var_dump($arr);
$ar=array();
foreach($arr as $v){
if(empty($ar) || !in_array($v,$ar)){
$ar[$v['m_id']][$v['sv_id']]=$v;
}else{
foreach($ar as $ka=>$va){
if($ka==$v['m_id']){
$ar[$ka][$v['sv_id']]=$v;
}
}
}
}
echo "<pre>";
var_dump($ar);你复制运行一下看是不是你要的效果。
效果图:
array( 'sv_id' => 1, 'mid' => 1, 'sv_question1' => 20 ),
array( 'sv_id' => 2, 'mid' => 2, 'sv_question1' => 10 ),
array( 'sv_id' => 3, 'mid' => 1, 'sv_question1' => 20 ),
array( 'sv_id' => 4, 'mid' => 3, 'sv_question1' => 20 ),
array( 'sv_id' => 5, 'mid' => 2, 'sv_question1' => 20 ),
);
$res = array();foreach($ar as $item) {
$res[$item['mid']][$item['sv_id']] = $item;
}
print_r($res);Array
(
[1] => Array
(
[1] => Array
(
[sv_id] => 1
[mid] => 1
[sv_question1] => 20
) [3] => Array
(
[sv_id] => 3
[mid] => 1
[sv_question1] => 20
) ) [2] => Array
(
[2] => Array
(
[sv_id] => 2
[mid] => 2
[sv_question1] => 10
) [5] => Array
(
[sv_id] => 5
[mid] => 2
[sv_question1] => 20
) ) [3] => Array
(
[4] => Array
(
[sv_id] => 4
[mid] => 3
[sv_question1] => 20
) ))
额,是,sorry 我写错,少了一个下划线 m_id 写成了mid