PHP 将数组元素添加到数组数组中


php add array element to array of arrays

我使用 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添加新的数组元素;