二維數組,演算法

來源:互聯網
上載者:User
二維數組,求一個演算法
這個數組是這樣子的,怎麼把這樣的數組,相同employee_id的yeji加起來
Array
(
[0] => Array
(
[employee_id] => 26
[yeji] => 60
)

[1] => Array
(
[employee_id] => 25
[yeji] => 105
)

[2] => Array
(
[employee_id] => 26
[yeji] => 100
)

[3] => Array
(
[employee_id] => 25
[yeji] => 0
)

)

合并後的數組是這樣
Array
(
[0] => Array
(
[employee_id] => 26
[yeji] => 160
)

[1] => Array
(
[employee_id] => 25
[yeji] => 105
)
)
------解決思路----------------------
$ar = array (
0 => array (
'employee_id' => '26',
'yeji' => '60',
),
1 => array (
'employee_id' => '25',
'yeji' => '105',
),
2 => array (
'employee_id' => '26',
'yeji' => '100',
),
3 => array (
'employee_id' => '25',
'yeji' => '0',
),
);

$res = array();
foreach($ar as $item) {
$res[$item['employee_id']]['employee_id'] = $item['employee_id'];
@$res[$item['employee_id']]['yeji'] += $item['yeji'];
}
print_r(array_values($res));
Array
(
[0] => Array
(
[employee_id] => 26
[yeji] => 160
)

[1] => Array
(
[employee_id] => 25
[yeji] => 105
)

)


------解決思路----------------------

$arr = array (
0 => array (
'employee_id' => '26',
'yeji' => '60',
),
1 => array (
'employee_id' => '25',
'yeji' => '105',
),
2 => array (
'employee_id' => '26',
'yeji' => '100',
),
3 => array (
'employee_id' => '25',
'yeji' => '0',
),
);
$item=array();
foreach($arr as $k=>$v){
if(!isset($item[$v['employee_id']])){
$item[$v['employee_id']]['employee_id']=$v['employee_id'];
$item[$v['employee_id']]['yeji']=$v['yeji'];
}else{
$item[$v['employee_id']]['yeji']+=$v['yeji'];
}
}
print_r($item);



Array
(
[26] => Array
(
[employee_id] => 26
[yeji] => 160
)

[25] => Array
(
[employee_id] => 25
[yeji] => 105
)

)


------解決思路----------------------
function calcArrSameId($arr=array())
{
foreach ($arr as $key => $value) {
//print_r($value);die;
if(!isset($tmp[$value['employee_id']]))
{
$tmp[$value['employee_id']]['employee_id'] = $value['employee_id'];
$tmp[$value['employee_id']]['yeji'] = $value['yeji'];
}else{
$tmp[$value['employee_id']]['yeji'] += $value['yeji'];
}

}
$list = array_values($tmp);
print_r($list);exit;
}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.