2012-02-21 50 views
0

我承擔了將數值存儲到巨大數值數組中的艱鉅任務。更簡單的方法來編輯數組數組?

的陣列看起來是這樣的:

//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"; 

一路上揚,直至數字數組包含1929年的值。但是,我搞砸了,並在我的代碼中間重複數字數組。它看起來是這樣的:

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

$away_team[1033] = "Bears"; 

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

$away_team[1033] = "Bulls"; 

而不是回去和手動從8月12日更改數字數組中的值,並提前一個數字,是不是一個更大的一個,它目前,是有辦法,我可以用php和mysql來做到這一點?

+4

無論你在做什麼,我不明白,你這樣做是可怕的錯誤。爲了解決眼前的問題,你可以做$ home_team [] ='value';它會在下一個可用插槽添加該值,因此您不必手動給它一個索引。所以如果你總是把一個家和一個客隊放在一起,他們應該保持同步。 – 2012-02-21 17:00:07

+0

那麼,你想要代碼來修復你的錯字? – 2012-02-21 17:01:36

+0

如果您對這些值進行了硬編碼,除了修復代碼之外,您無能爲力。我不明白你如何看待MySQL可以提供幫助,因爲你沒有提及在你的項目的任何地方使用它。 – meagar 2012-02-21 17:02:25

回答

3

你根本不需要指定數字。只要這樣做:

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

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

PHP會自動爲該元素分配下一個索引。如果你希望它是基於一個,你可以這樣做:

$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'); 

這樣,你就不必擔心兩個分立的陣列之間的匹配指標。當然,要做的事情就是把這一切全部放在一個名爲teams,games的表中。

3

只要數組鍵不意味着什麼,你可以完全刪除它們,它會爲你程序自動創建索引

$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

是的,這正是我想要做的......根據數組的索引匹配主隊和客隊。我現在把它們全部輸入到數據庫中。但是,我不太清楚如何解決這個錯誤。 – Lance 2012-02-21 17:13:21

+0

你有他們所有的數據庫?大!什麼是錯誤? – 472084 2012-02-21 17:15:04

3

我不確定你想要達到的目標,但是我會猜測並且說你正在嘗試創建匹配項(home Vs)並將它們存儲在一個數組中?你是通過創建兩個單獨的數組並通過相同的索引來組織它們來完成這項工作的?如果是這種情況,這將是一個更好的解決方案:

<?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 /> "; 
} 
?> 
相關問題