我不想成为“那些家伙”之一 - 我非常确定答案是在我面前,我根本无法掌握它。然而,在过去的几个小时里,我已经尝试在我们的朋友谷歌先生的帮助下解决这个问题,但无济于事。
我想做的很简单:
对于我的所有劳动力,我都有这个:
$newarray = array(1,2,3,4,7,5,8,6,9);
我希望能够计算(例如)从数字3开始,以可变数字(例如,12)以循环方式递增。这会使计数的结尾为数字5.然后,我想取这个数字(5)并将其存储在一个变量中,以便在页面的其余部分使用。
同样,我知道这应该是基本的,但无论出于何种原因,我似乎无法弄明白。非常感谢你的帮助。
答案 0 :(得分:2)
以下是其中一种方式:
PHP代码:
<?php
function circulateArr($key, $arr)
{
foreach($arr as $arrkey => $value)
{
if($arrkey != $key)
{
$elm = array_shift($arr);
array_push($arr, $elm);
}
else
{
break;
}
}
return $arr;
}
$array = array(1,2,3,4,5,6,7,8,9);
$start = 3;
$roundRobin = 12;
$arr = circulateArr(array_search($start, $array), $array); //Repositioning the array
echo $elementChose = $arr[($roundRobin%count($arr))-1]; //Get the array element
输出:
5
答案 1 :(得分:0)
对于您的号码1,您需要使用array_push():http://php.net/manual/en/function.array-push.php。
以下是一个例子:
<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>
这将显示
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)
对于你的号码2.您可以使用这样的简单for循环:
for($i = 0; $i< $stack.count(); $i++){
$tmp = $stack[$i];
//tmp will be the value at that location do what you will with it
}
对于偏移量,只需将$ i设置为偏移量
for($i = $offset; $i < $stack.count(); $i++){
$tmp = $stack[$i];
//tmp will be the value at that location do what you will with it
}
答案 2 :(得分:0)
1)可以使用array_push将字符串推送到数组。
2)使用偏移计算数组中X条目的次数,并将结果值作为变量返回稍微复杂一些。我们可以使用count()并添加1来获取数组中元素的数量,并使用PHP模数运算符计算序数键偏移量%如果数组尚未使用序数值键入,则array_value()将使用序数重新键入数组我们的价值观。然后我们只返回值。
下面是一小段代码,可以为您提供所有代码。
<?php
$myArray = array(1,2,3,4,7,5,8,6);
array_push($myArray,'9');
$start=3;
$increment=12;
echo roundRobbinArrayValue($myArray,$start+$increment)."\n";
function roundRobbinArrayValue($myArray,$pointer){
$ordinalArray=array_values($myArray);
$numberOfItems=count($ordinalArray)+1;
$newPointer= $pointer % $numberOfItems;
return $ordinalArray[$newPointer];
}
?>