2012-02-21 15 views
0

私は巨大な数値配列に値を格納するという大変な作業を引き受けました。数値配列は、1929年の値が含まれてまで数値配列を簡単に編集できますか?

//April 5 
$home_team[1] = "Giants"; 
$home_team[2] = "Raiders"; 

$away_team[1] = "Saints"; 
$away_team[2] = "Titans"; 

//April 6 
$home_team[3] = "Warriors"; 

$away_team[3] = "Bears"; 

すべての道:

配列は次のようになります。しかし、私は混乱し、コードの途中で数値配列を重複させました。

//August 11 
$home_team[1033] = "Angels"; 

$away_team[1033] = "Bears"; 

//August 12 
$home_team[1033] = "Titans"; 

$away_team[1033] = "Bulls"; 

よりもむしろ戻って、手動で8月12日から数値配列内の値を変更すると、今後、それが現在、その方法があるものよりも1大きい数に:それは次のようになります私はPHPとMySQLでこれを行うことができますか?

+4

あなたが何をしているのか分かりませんが、あなたはひどく間違っています。すぐに問題を解決するには、$ home_team [] = 'value'を実行するだけです。次の利用可能なスロットに値を追加するので、手動でインデックスを与える必要はありません。だから、もしあなたがいつも家庭と離れたチームに入れたら、彼らは同期していなければなりません。 –

+0

だから、あなたのタイプミスを修正するコードが必要ですか? –

+0

値をハードコーディングした場合は、コードを修正する以外は何もできません。私はあなたのプロジェクトのどこにでも使用することを言及していないので、MySQLがどのように役立つと思いますか分かりません。 – meagar

答えて

3

数字をまったく指定する必要はありません。ただしてください:

$home_team[] = "Giants"; 
$home_team[] = "Raiders"; 

$away_team[] = "Saints"; 
$away_team[] = "Titans"; 

PHPは自動的にその要素に次のインデックスを割り当てます。あなたはそれが1をベースにしたい場合は、行うことができます:

$i = 1; 
$j = 1; 

$home_team[$i++] = "Giants"; 
$home_team[$i++] = "Raiders"; 

$away_team[$j++] = "Saints"; 
$away_team[$j++] = "Titans"; 

をあなたはコードであなたの現在のコードを「修正」したい場合、あなたは自分の現在の配列を反復処理することができます。

foreach ($home_team as $team) { 
    echo '$home_team[$i++] = "' . $team . "\";\n"; 
} 

この意志の出力コード:

$home_team[$i++] = "Giants"; 
$home_team[$i++] = "Raiders"; 
あなたは、あなたのエディタにコピーして貼り付けることができ

と行方不明のチーム(角度/ベアーズ)を記入。

より良い配列構造は次のようになります。

$games = array(); 

$games[] = array('home'=>'Giants', 'away'=>'Saints'); 
$games[] = array('home'=>'Raiders', 'away'=>'Titans'); 

あなたは2つの個別のアレイ間のマッチングインデックスを心配する必要はありませんこの方法。もちろん、最高ののことは、teams,gamesというテーブルを持つデータベースにすべてをスローします。

3

限り、配列のキーは、あなたがそれらを完全に削除することができます何の意味もいけないし、それはあなたのためにインデックスを作成するようautomaticllyに

$home_team[] = "Giants"; 
$home_team[] = "Raiders"; 

$away_team[] = "Saints"; 
$away_team[] = "Titans"; 

も$のHOME_TEAMと$で同じ数のエントリがあるように必要があります。彼らが一致することを確認するaway_team!


は限りそれを修正するためにSQLを使用したとして、あなたはそれを何とかしてそのポイントからデータベースにすべてのあなたのチームを入力する必要があります管理するのたくさん容易になるだろう。おそらくそれはあなたが多くのデータ入力をしても構わないと思うほど価値があるでしょう。または、見つけて置き換えるか何かを使ってバッチSQLスクリプトを作成してください。


あなたの配列をよりよくレイアウトすることをお勧めします。あなたはこれを行うことができます:

$games[] = array('home' => 'Giants', 'away' => 'Saints', 'date' => '2012-02-21') 

そしてそれはあなたがはるかに簡単に操作することができます。

+0

はい、それはまさに私がやろうとしていることです。配列のインデックスに基づいてホームチームとアウェイチームを合わせます。私はDBにすべて入力しました。しかし、私はこのエラーを解決するにはどのようにアプローチするかについてはあまりよく分かりません。 – Lance

+0

あなたはそれらをすべてデータベースに持っていますか?すばらしいです!エラーは何ですか? – 472084

3

私はあなたが達成しようとしていることを正確にはわかりませんが、私は推測して、マッチアップ(ホーム対離れて)を作り、それらを配列に格納しようとしていると言います?そして、あなたは2つの別々の配列を作成し、同じインデックスでそれらを整理することでこれをやっていますか?その場合、これがより良い解決策になります:

<?php 
$games = array(

    array('home' => 'Giants', 'away' => 'Saints', 'date' => '2012-02-21'), 
    array('home' => 'Raiders', 'away' => 'Titans', 'date' => '2012-02-27') 

); 

foreach($games as $key => $game){ 
    echo $game['home'] . " vs ". $game['away']. " on " . $game['date'] . " <br /> "; 
} 
?> 
関連する問題