我有一个名为$addon_array
的数组,当我使用var_dump这样显示时
array(10) {
["ext_token"]=> string(5) "floor"
["ext_token_child"]=> string(6) "carpet"
["concrete"]=> string(1) "4"
["cement"]=> string(1) "3"
["sand"]=> string(1) "2"
["wood_4_2"]=> string(1) "4"
["wood_8_2"]=> string(1) "2"
[0]=> string(0) ""
["brick"]=> string(3) "100"
["carpet"]=> string(1) "3"
}
我试图做的大部分时间是尝试并想办法在阵列的所有不同元素中循环(ext_token
和ext_token_child
除外)并将每个数字乘以另一个名为$qty
的变量(可以是任何东西,无关紧要)。
然后我希望他们再次添加一个新数组以及相应的columnNames
(cement
或sand
等...
我认为只是在每个元素上执行foreach循环的简单情况,但我似乎无法将它们放回到新数组中。
感谢您提供的任何帮助
答案 0 :(得分:2)
这应该有效(使用array_walk
):
$new_array = array_walk($addon_array, function($v, $k) use ($qty) {
if(in_array($k, array('ext_token', 'ext_token_child'))) return $v;
return $v*$qty;
});
答案 1 :(得分:2)
$new_array = array();
foreach($addon_array as $key => $col) {
if($key == 'ext_token' || $key == 'ext_token_child') {
$new_array[$key] = $col;
} else {
$new_array[$key] = $col * $qty;
}
}
答案 2 :(得分:1)
$qty = 10;
$newArray = array();
foreach($addon_array as $key => $val){
if($key != 'ext_token' && $key != 'ext_token_child'){
$newArray[$key] = $qty*(int)$val;
}
}
$newArray['ext_token'] = $addon_array['ext_token'];
$newArray['ext_token_child'] = $addon_array['ext_token_child'];
var_dump($newArray);
答案 3 :(得分:0)
在PHP中循环遍历数组很简单,使用foreach。
$new = array();
foreach($addon_array as $key=>$value){
if($key != "ext_token" OR $key != "ext_token_child"){
$value = $value*$qty;
}
$new[$key] = $value;
}