PHP 數(shù)組相同字段所在其他字段相加
<!DOCTYPE html>
<html>
<body>
<?php
$arr? =? array (?
? ? ?array (?
? ? ? ? 'user_id'? => 100,?
? ? ? ? 'goods_id'? => 10,?
? ? ? ? 'number'? => 1,?
? ? ?),?
? ? ?array (?
? ? ? ? 'user_id'? => 100,?
? ? ? ? 'goods_id'? => 10,?
? ? ? ? 'number'? => 3,?
? ? ?),?
? ? ?array (?
? ? ? ? 'user_id'? => 100,?
? ? ? ?'goods_id'? => 10,??
? ? ? ? 'number'? => 3,?
? ? ?),?
? ? ?array (?
? ? ? ? 'user_id'? => 10,?
? ? ? ? 'goods_id'? => 10,?
? ? ? ? 'number'? => 5,?
? ? ?),?
);?
$item = array ();?
foreach ( $arr? as? $k => $v ){?
print_r( 'AAAAA');?
//
print_r( $v [ 'user_id' ]); /*'user_id'? => 數(shù)值, user_id指向 的數(shù)值打印出來(lái)? ? */
print_r( 'BBBBB');
print_r( $item [ $v [ 'user_id' ]]);
/*$item [ $v [ 'user_id' ]]=$item [鍵名]作為鍵名的數(shù)組*/?
?print_r( 'CCC');
? ? ?if (!isset( $item [ $v [ 'user_id' ]])){?
/*$item [ $v [ 'user_id' ]] 獲取的鍵名為$v [ 'user_id']=100的名字,即
$item [ 100]鍵名為100的數(shù)組,里面還是個(gè)二維數(shù)組
*/
? ? ? ? $item [ $v [ 'user_id' ]]= $v ;
/*
$v= Array
(
? ? [user_id] => 100
? ? [goods_id] => 10
? ? [number] => 1
) 數(shù)組對(duì)應(yīng)里面二維數(shù)組?
*/
print_r( 'QQQ');??
print_r( $v);
print_r( 'PPPP');?
? ? ?} else {?
print_r( 'JJJJ');
print_r( $v [ 'number' ]);
? ? ? ? ?$item [ $v [ 'user_id' ]][ 'number' ]+= $v [ 'number' ];
print_r( 'IIIII');
/*
$item [ $v [ 'user_id' ]][ 'number' ]=$item [ 鍵名‘比如鍵名為100’]下的[ 'number字段' ],再加上$v 對(duì)應(yīng)數(shù)組下[ 'number' ]字段和?
*/
? ? ?}?
}?
print_r( $item );?
?>
</body>
</html>
輸出結(jié)果
<!DOCTYPE html><html><body>
AAAAA
100
BBBBB
CCC
QQQ
Array(
[user_id] => 100
[goods_id] => 10
[number] => 1
)
PPPP
AAAAA
100
BBBBB
Array(
[user_id] => 100
[goods_id] => 10
[number] => 1
)
CCC
JJJJ
3
IIIII
AAAAA
100
BBBBB
Array(
[user_id] => 100
[goods_id] => 10
[number] => 4
)
CCC
JJJJ
3
IIIII
AAAAA
10
BBBBB
CCC
QQQ
Array(
[user_id] => 10[goods_id] => 10
[number] => 5
)
PPPP
Array(
[100] => Array(
[user_id] => 100
[goods_id] => 10
[number] => 7
)
[10] => Array
(
[user_id] => 10
[goods_id] => 10
[number] => 5
)
)
</body></html>