PHP数组加倍数字

时间:2015-05-20 12:44:12

标签: php arrays foreach

我有一个数组,我想加倍它但是在执行数组之后不会改变如何尽可能少地纠正它。

<?php
   $arr = array(1, 2, 3, 4);
   foreach ($arr as $value) {
     $value = $value * 2;
   }
?>

5 个答案:

答案 0 :(得分:2)

您的价值没有加倍,因为您并未说明{strong}键应该在$arr中覆盖此代码应该正常工作:

$arr = array(1,2,3,4);
foreach($arr as $key => $value){
  $arr[$key] = $value*2;
}

另一种方法是使用array_map()

<?php

 function double($i){
   return $i*2;
 }  

 $arr = array(1, 2, 3, 4);
 $arr = array_map('double', $arr);

 var_dump($arr);
?>

答案 1 :(得分:0)

您需要将实际数组$arr元素加倍,而不仅仅是循环中的值。

<?php
   $arr = array(1, 2, 3, 4);
   foreach ($arr as $key => $value) {
     $arr[$key] = $value * 2;
   }
?>

答案 2 :(得分:0)

您正在使用一个变量$ value,它在每个for循环中分配,因此存储在$ value中的值在foreach循环中是过度的。

:set ttyfast

这将有效

:set lazyredraw

答案 3 :(得分:0)

简短的解决方案,并在< PHP 5.3支持,请尝试此代码

<?php 
$arr = array(1, 2, 3, 4);
$arr = array_map(create_function('$v', 'return $v * 2;'), $arr);
print_r($arr);

DEMO

答案 4 :(得分:0)

请尝试以下代码:

   $arr = array(1, 2, 3, 4);
   array_walk($arr, function(&$item){ 
       $item*=2; 
   });
   var_dump($arr);