2015-10-09 126 views
3

我得到这个:腓不支持的操作数类型

$newcw = array_rand(range(1, 52), 15) ; 
shuffle($newcw); 
$year = date("Y"); 
$time = mktime(0,0,0,1,1,$year) + ($newcw * 7 * 24 * 60 * 60); 
$time = $time - ((date('N', $time) - 1) * 24 * 60 * 60); 

$startWeek = date('D d-M-Y', $time); 
$endWeek = date('D d-M-Y', $time + (6 * 24 * 60 * 60)); 

所以基本上我得到它代表压延周的随机整数。

我计算了该日历周的开始日期(星期一)和结束日期(星期日) 。

,但我得到以下错误:

Fatal error: Unsupported operand types in 88

线88将是这一行:

$time = mktime(0,0,0,1,1,$year) + ($newcw * 7 * 24 * 60 * 60); 

编辑: 我想一个随机整数不应重演,那它为什么我尝试这种方法。

回答

2

$newcw是数组并尝试mutiply阵列整数,这就是为什么你在这行得到错误

+0

谢谢!你知道如何解决这个问题吗? –

+0

使用rand()与modulo运算符适合更多那里你也可以从$ newcw变量与'$ newcw [rand()%count($ newcw) - 1]' – Robert

3

如果你只是想要一个值,使用常规的rand功能:

//$newcw = array_rand(range(1, 52), 15) ; 
//shuffle($newcw); 

$newcw = rand(1,52); 

http://php.net/manual/en/function.rand.php

如果您确实需要在脚本稍后的某个地方使用其他14个值,则可以在此计算中选择该数组的第一个元素:

$newcw = array_rand(range(1, 52), 15) ; 
shuffle($newcw); 
$year = date("Y"); 
$time = mktime(0,0,0,1,1,$year) + ($newcw[0] * 7 * 24 * 60 * 60); //<-- note [0] 

然后使用其他值的要求,通过增加每一次的关键,例如:

some_func($newcw[1]); 

$val = $newcs[2] + 100; 
//.... 
another_func($newcw[14]; 
+0

事情是我想要一个随机整数,不应该重复自己,它为什么我正在尝试这种方法 –

+1

@JonDon请解释 - 你的意思是你需要在这个脚本中的所有15个值?如果是的话,就像我在第二段中演示的那样,通过密钥访问每一个。所以下一个值是'$ newcw [1]' – Steve

+0

我可以一次访问所有的密钥吗? –

相关问题