我有这样的阵列
Array
(
[0] => Array
(
[sexo_edad] => type1
[fans] => 2
)
[1] => Array
(
[sexo_edad] => type2
[fans] => 3
)
[2] => Array
(
[sexo_edad] => type1
[fans] => 8
)
[3] => Array
(
[sexo_edad] => type2
[fans] => 10
)
)
如何根据,而TYPEx键获得值的差,并且如以下所示的阵列应出现
Array
(
[0] => Array
(
[sexo_edad] => type1
[fans] => 2
[difference] => 0
)
[1] => Array
(
[sexo_edad] => type2
[fans] => 3
[difference] => 0
)
[2] => Array
(
[sexo_edad] => type1
[fans] => 8
[difference] => +6
)
[3] => Array
(
[sexo_edad] => type2
[fans] => 10
[difference] => +7
)
)
注意,类型1和type2值是分别减去在关联数组称为差的新值获得的差值
您可以通过数组循环,检查,看看是否你已经看到这种类型的值之前,如果是采取与上次值之差,差值否则设置为0,在这两种情况下,我们储存以备将来计算的当前值:
$type_values = array();
foreach ($array as &$arr) {
if (isset($type_values[$arr['sexo_edad']])) {
$arr['difference'] = $arr['fans'] - $type_values[$arr['sexo_edad']];
}
else {
$arr['difference'] = 0;
}
$type_values[$arr['sexo_edad']] = $arr['fans'];
}
print_r($array);
输出:
Array (
[0] => Array (
[sexo_edad] => type1
[fans] => 2
[difference] => 0
)
[1] => Array (
[sexo_edad] => type2
[fans] => 3
[difference] => 0
)
[2] => Array (
[sexo_edad] => type1
[fans] => 8
[difference] => 6
)
[3] => Array (
[sexo_edad] => type2
[fans] => 10
[difference] => 7
)
)