Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使数组循环?_Php_Arrays - Fatal编程技术网

Php 如何使数组循环?

Php 如何使数组循环?,php,arrays,Php,Arrays,例如,我有一个数组 // In $arr = [0, 1, 2, 4, 5]; // Out $cycled_arr = [5, 1, 2, 3, 4, 0]; 我这样做: $arr = array(0, 1, 2, 3, 4, 5); // It cycles once function array_start_push($array){ return array_merge( array(array_pop($array)), $array); } // This functio

例如,我有一个数组

// In
$arr = [0, 1, 2, 4, 5];
// Out
$cycled_arr = [5, 1, 2, 3, 4, 0];
我这样做:

$arr = array(0, 1, 2, 3, 4, 5);

// It cycles once
function array_start_push($array){
    return array_merge( array(array_pop($array)), $array);
}
// This function must cycle array $times times
function cycleArray($times,&$glArr){
    if (!isset($times)){
        $result = $glArr;
    } else {
        for ($loc = 0; $loc <= $times; $loc++) {    
        $result = array_start_push($glArr); 
        $glArr = $result;
    }   
    return $result;
}

$hmm = cycleArray($arr);

echo "<pre>";
var_dump($hmm);
echo "</pre>";
$arr=array(0,1,2,3,4,5);
//它循环一次
函数数组\u开始\u推送($array){
返回array\u merge(array(array\u pop($array)),$array);
}
//此函数必须循环数组$次
函数cycleArray($times,&$glArr){
如果(!isset($times)){
$result=$glArr;
}否则{

对于($loc=0;$loc它可能会给您一个错误,因为
cyclearlay($arr);
不存在。它需要两个参数

检查错误日志。

尝试此功能:

array(5) {
  [0]=> int(4)
  [1]=> int(5)
  [2]=> int(1)
  [3]=> int(2)
  [4]=> int(3)
}
函数循环数组($times,$glArr){
对于($i=0;$i<$times;$i++)
{
//$glArr[]=数组移位($glArr);
数组_unshift($glArr,数组_pop($glArr));
}
返回$glArr;
}

假设您实际上是指循环,而不是任何循环,您的示例显示:

结果:


[Mon Jun 18 11:17:30 2012][error][client 127.0.0.1]返回头之前脚本超时:php cgi.exe[Mon Jun 18 11:22:56 2012][error][client 127.0.0.1]php警告:array_pop()预期参数1为array,如果给定iand[Mon Jun 18 11:23:41 2012][error][client 127.0.0.1]php警告:array_merge():参数#2不是数组。请查看我的函数。稍等。您正在调用一个需要数组的函数,但您没有提供数组。请查看日志文件,修复明显的错误等。在您为指导您所做的每个小更改之后,我没有时间回来,所以请查看您的代码,修复明显的错误错误。提示:如果使用2个参数调用函数,则必须提供2个参数。警告:cycleArray()缺少参数2,警告:array\u pop()期望参数1为array,警告:array\u merge()该示例看起来比循环更随机……我不明白您对“循环”的定义。是否要交换第一个和最后一个元素?因为这是您预期的输出。0、1、2、3、4、5变成数组(6){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5]=>int(0)},而不是5,1,2,3,4,0哦,是的。这个循环是反向的。我会修复它。如果循环循环array(1,$glArr)它真的很有用,不幸的是已经不能接受了。希望投票会有帮助。或者停止!奇怪。请再次测试。函数循环(数组$arr\u in,$steps){返回数组\u合并(数组\u切片($arr\u in,$steps),数组\u切片($arr_in,0,$steps));}var_dump(循环(数组(0,1,2,3,4,5),1));//结果:数组(6){[0]=>int(1)[1]=>int(2)[2]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5][5]=>int(0)]code>?
function cycleArray($times, $glArr){
  for($i = 0; $i < $times; $i++)
  {
    //$glArr[] = array_shift($glArr);
    array_unshift($glArr, array_pop($glArr));
  }
  return $glArr;
}
function cycle(array $arr, $steps) {
    return array_merge(array_slice($arr, $steps), array_slice($arr, 0, $steps));
}

var_dump(cycle(array(1, 2, 3, 4, 5), 3));
array(5) {
  [0]=> int(4)
  [1]=> int(5)
  [2]=> int(1)
  [3]=> int(2)
  [4]=> int(3)
}