
[英]Multidimensional arrays in PHP - how to add values using foreach
[英]How to add the values of multidimensional arrays in PHP?
问题解决了,谢谢:
foreach($FIMP as &$value){
foreach($value as &$values){
$values[0]=$values[3].$values[2].$values[1];
}
我有以下数组:
$FIMP=array(
1 => array(
1 => array('a','b','c')
2 => array('a1','b1','c1')
2 => array(
1 => array('a2','b2','c2')
3 => array(
1 => array('a3','b3','c3')
2 => array('a4','b4','c4')
3 => array('a5','b5','c5')
)
我想添加值:b和c并用'bc'结果覆盖a
$FIMP=array(
1 => array(
1 => array('bc','b','c')
2 => array('b1c1','b1','c1')
2 => array(
1 => array('b2c2','b2','c2')
...
我已经尝试过$ FIMP
foreach($FIMP as $value){
foreach($value as $values){
$values[0]=$values[3].$values[2].$values[1];
}
}
在输出中,先前的$ FIMP不变,
<?php
$FIMP=array(
1 => array(
1 => array('a','b','c'),
2 => array('a1','b1','c1'),
),
2 => array(
1 => array('a2','b2','c2'),
),
3 => array(
1 => array('a3','b3','c3'),
2 => array('a4','b4','c4'),
3 => array('a5','b5','c5'),
),
);
foreach($FIMP as & $v1){
foreach($v1 as & $v2){
$v2[0] = $v2[1].$v2[2];
}
}
var_dump($FIMP);
您可以这样做:
foreach($FIMP as &$first){
foreach($first as &$second){
$second[0] = $second[1].$second[2];
}
}
输出值
Array
(
[1] => Array
(
[1] => Array
(
[0] => bc
[1] => b
[2] => c
)
[2] => Array
(
[0] => b1c1
[1] => b1
[2] => c1
)
)
[2] => Array
(
[1] => Array
(
[0] => b2c2
[1] => b2
[2] => c2
)
)
[3] => Array
(
[1] => Array
(
[0] => b3c3
[1] => b3
[2] => c3
)
[2] => Array
(
[0] => b4c4
[1] => b4
[2] => c4
)
[3] => Array
(
[0] => b5c5
[1] => b5
[2] => c5
)
)
)
为了能够直接在循环内修改数组元素,在$ value之前加&。 在这种情况下,该值将通过引用分配。
因此,要更改$FIMP
的值,您需要将foreach循环更改为以下内容:
foreach($FIMP as &$value){
foreach($value as &$values){
// alter $value or $values here
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.