私はこれについて頭を悩ませようとして頭を叩いています。私は以前に配列を扱ったことがありますが、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');
値が入力されるにつれてカウントが増加していることがわかるため、これは機能していないようです。私は他のいくつかの方法を試しましたが、何らかの理由でそれを理解することができませんでした。私が出くわしたほとんどの例は、私がやろうとしていることと似ていないようです。どんな助けでも大歓迎です。
--------フィードバックに基づく更新された質問--------更新されたロジックを理解していると思います。コードを更新しようとしましたが、次の問題が発生しています。 。$ _SESSION ['school'] = array(array());を設定する初期化phpスクリプトがあります。これは後でまで入力されません。ある時点で、$ _SESSION['school']をカウントでチェックします。何も追加されていなくても、最初のチェックで常に1を返します。ただし、空の配列を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')};
その場合、各要素は異なるインデックスにあります。ここで基本的な何かが欠けているに違いありません。私は絶えず読み上げて、自分が間違っていることとのつながりを作ろうとしています。問題を間違った角度から見ているだけだと思います。