Php 匹配二维阵列
伙计们,我在试着匹配二维数组。这是演示我所做工作的代码:Php 匹配二维阵列,php,multidimensional-array,foreach,Php,Multidimensional Array,Foreach,伙计们,我在试着匹配二维数组。这是演示我所做工作的代码: $games = array("Game1" => "Team 2 vs. Team 3", "Game2" => "Team 1 vs. Win 1","Game3" => "Loser Game 1 vs. Loser Game 2","Game4" => "Win Game 2 vs. Win Game 3", "Game5" => "Win Game 4 vs. Loser Game 4 (If Lo
$games = array("Game1" => "Team 2 vs. Team 3", "Game2" => "Team 1 vs. Win 1","Game3" => "Loser Game 1 vs. Loser Game 2","Game4" => "Win Game 2 vs. Win Game 3", "Game5" => "Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss)");
$time= array("06:00 " => "06:30","06:30 " => " 07:00","07:00" => "07:30","07:30" =>"08:00","08:00" => "08:30");
foreach($games as $games => $versus)
{
foreach($time as $start_time => $end_time)
{
echo $games . ": ". $versus ." ". $start_time. " to " . $end_time . "<br>";
}
}
我想把它显示成这样
Game1: Team 2 vs. Team 3 06:00 to 06:30
Game2: Team 1 vs. Win 1 06:30 to 07:00
Game3: Loser Game 1 vs. Loser Game 2 07:00 to 07:30
Game4: Win Game 2 vs. Win Game 3 = 07:30 to 08:00
Game5: Win Game 4 vs. Loser Game 4 (If Loser 4 is First Loss) = 08:00 to 08:30
我怎样才能解决这个问题?
提前感谢您对我的帮助。如果您能控制阵列,我将采用不同的结构,您可以轻松匹配游戏和时间 但是,由于您没有数字键,因此需要从
$time
数组中获取键key()
和值current()
,并在每次循环迭代中提前数组指针:
foreach($games as $game => $versus)
{
echo $game . ": " . $versus ." ". key($time) ." to ". current($time) ."<br>";
next($time);
}
如果你能控制阵列,我会用一种不同的结构,你可以很容易地匹配游戏和时间 但是,由于您没有数字键,因此需要从
$time
数组中获取键key()
和值current()
,并在每次循环迭代中提前数组指针:
foreach($games as $game => $versus)
{
echo $game . ": " . $versus ." ". key($time) ." to ". current($time) ."<br>";
next($time);
}
如果可能的话,您可以尝试将游戏和开始/结束时间组合成一个多维数组(这只是许多可能的方法之一)。此示例适用于2个游戏,但您可以添加更多内容:
$games = array(
"Game1" =>
Array(
"versus" => "Team 2 vs. Team 3",
"start_time" => "06:00",
"end_time" => "06:30"
),
"Game2" =>
Array(
"versus" => "Team 1 vs. Win 1",
"start_time" => "06:30",
"end_time" => "07:00"
)
);
foreach ($games as $game => $arr)
{
echo "<br>";
echo $game . ": versus : " . $arr['versus'] . ": start_time: ";
echo $arr['start_time'] . ": end_time: " . $arr['end_time'];
}
$games=array(
“游戏1”=>
排列(
“对”=>“第二队对第三队”,
“开始时间”=>“06:00”,
“结束时间”=>“06:30”
),
“游戏2”=>
排列(
“对”=>“第一队对第一胜”,
“开始时间”=>“06:30”,
“结束时间”=>“07:00”
)
);
foreach($games as$game=>$arr)
{
回声“
”;
echo$game.:对:“$arr[‘对’]”:开始时间:”;
echo$arr['start_time']。”:end_time:“.$arr['end_time'];
}
输出:
游戏一:对:第二队对第三队:开始时间:06:00:结束时间:06:30
第二场:对战:第一队对胜1:开始时间:06:30:结束时间:07:00
如果可能的话,您可以尝试将游戏和开始/结束时间组合成一个多维数组(这只是许多可能的方法之一)。此示例适用于2个游戏,但您可以添加更多内容:
$games = array(
"Game1" =>
Array(
"versus" => "Team 2 vs. Team 3",
"start_time" => "06:00",
"end_time" => "06:30"
),
"Game2" =>
Array(
"versus" => "Team 1 vs. Win 1",
"start_time" => "06:30",
"end_time" => "07:00"
)
);
foreach ($games as $game => $arr)
{
echo "<br>";
echo $game . ": versus : " . $arr['versus'] . ": start_time: ";
echo $arr['start_time'] . ": end_time: " . $arr['end_time'];
}
$games=array(
“游戏1”=>
排列(
“对”=>“第二队对第三队”,
“开始时间”=>“06:00”,
“结束时间”=>“06:30”
),
“游戏2”=>
排列(
“对”=>“第一队对第一胜”,
“开始时间”=>“06:30”,
“结束时间”=>“07:00”
)
);
foreach($games as$game=>$arr)
{
回声“
”;
echo$game.:对:“$arr[‘对’]”:开始时间:”;
echo$arr['start_time']。”:end_time:“.$arr['end_time'];
}
输出:
游戏一:对:第二队对第三队:开始时间:06:00:结束时间:06:30
第二场:对战:第一队对胜1:开始时间:06:30:结束时间:07:00
我不确定这一部分是否正确:
foreach($games=>$vs)
我认为应该是foreach($games=>$vs)
为了做你想做的事情,你需要在$games
和$time
数组之间建立某种连接,而你没有这种连接。你可能想把它们组合成一个单打$games\u time
数组。我更新了我的答案。code会得到你想要的结果。我不确定这部分是否正确:foreach($games=>$vs)
我认为应该是foreach($games=>$vs)
才能完成你想做的事情,您需要在$games
和$time
数组之间建立某种连接,而这是您所没有的。您可能想将它们组合成单打$games\u time
数组。我更新了答案。code将得到您想要的结果。@riggsfully是的,我做了。这只是OP试图实现的另一种方式。只有在我提到的将两个数组合并成一个多维数组的情况下,它才会起作用。@riggsfully没关系。如果你不喜欢我的答案,那就直接投反对票,否则OP可以投反对票。事情的结局。为什么要制造问题呢?因为这是对磁盘空间的浪费。如果他没有如此混乱的数据,他可能不需要问这个问题让我提出一个类似的问题并回答:Q=我怎么从这里到火车站a=我确实知道,但如果我们在主街,我可以告诉你从哪里来there@RiggsFolly是的。这只是OP试图实现的另一种方式。只有在我提到的将两个数组合并成一个多维数组的情况下,它才会起作用。@riggsfully没关系。如果你不喜欢我的答案,那就直接投反对票,否则OP可以投反对票。事情的结局。为什么要制造问题呢?因为这是对磁盘空间的浪费。如果他没有如此混乱的数据,他可能不需要问这个问题让我提出一个类似的问题并回答:Q=我怎么从这里到火车站a=我确实知道,但如果我们在主街,我可以告诉你从那里到那里的距离