我想知道是否可以在不使用循环的情况下向数组添加值。
是的,我知道从技术上讲我可以写:
$myArray = array(0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32); //etc...
但正如您在示例中看到的那样,如果行很长,则使用循环进行更明智。
现在,由于我已经知道每个数字都会提高 +2,我想知道盒子里是否有内部 php 命令,所以我可以通过回调或任何其他魔术来做到这一点;)
语法不正确,但只是为了让你明白这个想法。
$myArray = Array();
$myArray[] = insertArray($valueOf{$x};$x;$x>=100;$x=+2);
是的,我知道这也可以作为函数/类应用,但我问我是否可以在盒子里做那个神奇
的盒子:)谢谢!
您可以使用
它支持skip
参数range()
创建包含一系列元素的数组
$a = range(0,10,2);
print_r($a);
Array
(
[0] => 0
[1] => 2
[2] => 4
[3] => 6
[4] => 8
[5] => 10
)
是的,你有一个名为array_walk
的东西。定义一个这样的函数:
function addTwo (&$item, $key)
{
$item = $item * 2;
}
然后以这种方式使用该函数:
array_walk ($myArray, 'addTwo');
在您的用例中,您可以将range()
与skip
选项一起使用,也可以通过以下方式使用:
array_walk (range (0, $max));
或者,用range()
:
range (0, $max, 2);
你可以
用range()
(PHP Manual)来做到这一点。要生成阵列,请执行以下操作:
$array = range(0, 32, 2);
最后一个变量是数组中每个条目之间的步骤数。它默认为 1,但通过将其设置为 2,每个数字将递增 2。
print_r($array);
生产
Array
(
[0] => 0
[1] => 2
[2] => 4
[3] => 6
[4] => 8
[5] => 10
[6] => 12
[7] => 14
[8] => 16
[9] => 18
[10] => 20
[11] => 22
[12] => 24
[13] => 26
[14] => 28
[15] => 30
[16] => 32
)