2012-02-21 132 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 /> "; 
} 
?> 
相关问题