这是我的实际数组。
Array
(
[0] => Array
(
[member] => 1
[amount] => 50
)
[1] => Array
(
[member] => 500
[amount] => 100
)
[2] => Array
(
[member] => 1000
[amount] => 150
)
[3] => Array
(
[member] => 1000
[amount] => 150
)
)
我想根据下一个索引数组元素成员创建一个具有范围的数组。
即我的分钟成员计数1和下一个索引数组元素成员计数500 So
0索引元素范围使 [min_member] => 1
和 [max_member] => 499
预期输出:
Array
(
[0] => Array
(
[min_member] => 1
[max_member] => 499
[amount] => 50
)
[1] => Array
(
[min_member] => 500
[max_member] => 999
[amount] => 100
)
[2] => Array
(
[min_member] => 1000
[max_member] => 1499
[amount] => 150
)
[3] => Array
(
[max_member] => 1500
[amount] => 150
)
)
答案 0 :(得分:0)
我认为最后一项是错字(1000/1500?)。
我循环数组并使用键获取下一个项目成员(-1)作为最大值,并取消设置该成员。 循环后,我通过引用数组取消设置项目,因此$ item的任何更改都会更改数组。
foreach($arr as $key => &$item){
$item['min_member'] = $item['member'];
if(isset($arr[$key+1]['member'])) $item['max_member'] = $arr[$key+1]['member']-1;
unset($arr[$key]['member']);
}
unset($item);
Var_dump($arr);
输出:
array(4) {
[0]=>
array(3) {
["amount"]=>
int(50)
["min_member"]=>
int(1)
["max_member"]=>
int(499)
}
[1]=>
array(3) {
["amount"]=>
int(100)
["min_member"]=>
int(500)
["max_member"]=>
int(999)
}
[2]=>
array(3) {
["amount"]=>
int(150)
["min_member"]=>
int(1000)
["max_member"]=>
int(1499)
}
[3]=>
&array(2) {
["amount"]=>
int(150)
["min_member"]=>
int(1500)
}
}