我使用 PHP 5.5,但我的工作知识非常有限 - 我只是在学习。我无法让我的代码工作。
我有一个具有 20 个值的数组 EP。我为网站的每个新访问者洗牌这些值,因此它们始终以随机顺序排列。
$EP = array(30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220);
$EP = shuffle($EP);
我有一个其他数组的数组
$P[] = [81,102,74,157,93,106,0,0]
$P[] = [71,102,76,157,93,106,0,0]
$P[] = [91,102,74,7,93,106,0,0]
$P[] = [56,100,89,15,93,106,0,0]
共 20 个
我需要的是 EP 数组的每个元素都使用一次,然后在末尾添加一个 0,所以它看起来像这样:
$P[] = [81,102,74,157,93,106,0,0,$EP(0),0];]
$P[] = [71,102,76,157,93,106,0,0,$EP(1),0];]
$P[] = [91,102,74,7,93,106,0,0,$EP(2),0];]
$P[] = [56,100,89,15,93,106,0,0,$EP(3),0];]
以便使用 EP 的所有 20 个数组元素。
我的代码一直有效,直到我添加 EP 数组并在其他数组中添加 EP(1) 等:
<?php
$Return = array();
$P = array();
$S = array();
$F = array();
$EP = array(30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220);
$EP = shuffle($EP);
//ts1
$P[] = [81,102,74,157,93,106,$EP(0),0];
$S[] = [this series is not important fo rmy question];
//ts2
$P[] = [184,0,0,0,0,0,0,105,$EP(1),0];
$S[] = [..];
//ts3
$P[] = [0,0,0,0,0,$EP(2),0];
$S[] = [..];
//and so on till time series ts20
//for loop below worked until I added the EP series, so it must have something to do with how I call the EP elements from the array.
for($i=0; $i<count($P); $i++)
{
$Return[] = $P[$i];
$Return[] = $S[$i];
$Return[] = $F[$i];
}
die(json_encode($Return));
?>
我看到两件事出错:
-
shuffle() 不返回数组。它返回一个布尔值。当你做
$a = shuffle($a);
时,$a
将是真或假 - 不是一个随机数组。改为:shuffle($a);
。 -
当您要引用数组中的索引时,请不要使用
$a(10)
。使用$a[10]
.请参阅 php.net。
更改后,它应该可以工作(经过测试)。
你可以推送到数组
array_push($P, $EP);
这将向$P添加新的数组元素;