我承担了将值存储到一个巨大的数字数组中的艰巨任务。
数组看起来像这样:
//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做到这一点? / p>
答案 0 :(得分: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
的表的数据库中。
答案 1 :(得分: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')
它可以让你更容易操作数组。
答案 2 :(得分:3)
我不确定你到底想要实现的目标,但我会猜测并说你正试图创造对决(主场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 /> ";
}
?>