我正在努力解决这个问题。我以前使用过数组,但我似乎在 PHP 中遇到了困难。相信我,我已经在这里和其他地方查看过问题,所以我提前为这个问题可能是多么基本而道歉。我想做的是制作一个数组的数组???
基本上,我正在尝试创建一个会话全局变量,以便它存储一个数组并且可以不断添加。
$_SESSION['school'] = array('events' => array());
事件数组的示例是:
events['name'] = 'Homecoming';
events['date'] = 'December 15, 2012';
events['cost'] = 18.00;
events['attending'] = array();
events['attending'][$i] = 'John'
那么用途将是
echo $_SESSION['school'][$i][events]['name'];
echo $_SESSION['school'][$i][events]['date'];
echo $_SESSION['school'][$i][events]['cost'];
...
我已经尝试如上所述创建它并像这样填充(再次是一个事件数组)
$_SESSION['school'] = array('events' => array());
$_SESSION['school'][$i][events]['name'] = 'Homecoming';
$_SESSION['school'][$i][events]['date'] = 'December 15, 2012';
$_SESSION['school'][$i][events]['cost'] = 18.00;
$_SESSION['school'][$i][events]['people'] = array('jane', 'john', 'bill');
这似乎不起作用,因为我可以告诉计数正在增加,因为它正在被填充。我尝试了其他一些方法,但由于某种原因我无法弄清楚。我遇到的大多数例子似乎与我正在尝试做的事情并不相似。任何帮助将不胜感激。
--------基于反馈的更新问题--------我想我非常接近理解你更新的逻辑,我尝试更新我的代码,但我遇到了以下问题. 我有一个初始化 php 脚本,它设置 $_SESSION['school'] = array(array());。直到稍后才会填充它,并且有一次我用计数检查了 $_SESSION['school']。即使没有添加任何内容,它也始终在初始检查中返回 1。但是,我认为它是因为它包含一个空数组。所以这让我质疑结构。由于我是一个视觉型的人,这就是我认为我需要的,但我不知道如何构建它。
//would be an 1 dimensional array that empty until a school is added later on in code.
$_SESSION['school'] = array();
它的元素将包含一个包含元素的多维数组
['name'] = 'Johnson High';
['address'] = '121 elm';
['city'] = 'san jose';
['state'] = 'California';
['events'] = array();
['events'] 在添加事件之前为空,但这里有一些项目将包含
['events']['name'] = 'homecoming';
['events']['date'] = 'December 15, 2012';
['events']['cost'] = '18.00';
最后 $_SESSION['school'] 可以容纳 1 到我可以循环通过的许多学校。
现在对于我对 danL 更新逻辑的误解,我看不到名称和事件如何具有相同的索引?当我查看代码时,我感觉 $_SESSION['school'] 看起来像这样
$_SESSION['school']{ 'name' => 'Johnson High',
'events' => array('basketball', 'soccer', 'football'),
'name' => 'West Forsyth High',
'events' => array('basketball', 'soccer', 'football')};
如果是这种情况,那么每个元素都位于不同的索引处。我必须在这里遗漏一些基本的东西。我一直在努力阅读并与我做错的事情联系起来。我想我只是从错误的角度看待问题。