PHP如何合并数组和创建键?
我正在做一个自定义的单消括号,它必须自动检查结果,并根据结果创建一轮。我可以成功地检查结果并将团队保存在阵列中以供下一轮使用,但我的问题是它创建了一个奇怪的阵列:PHP如何合并数组和创建键?,php,arrays,Php,Arrays,我正在做一个自定义的单消括号,它必须自动检查结果,并根据结果创建一轮。我可以成功地检查结果并将团队保存在阵列中以供下一轮使用,但我的问题是它创建了一个奇怪的阵列: foreach ($competitors as $competitor) { $teams = array(); if ($competitor['scoreHome'] > $competitor['scoreAway']) {
foreach ($competitors as $competitor) {
$teams = array();
if ($competitor['scoreHome'] > $competitor['scoreAway']) {
$teams = array(array('home'=>$competitor['home']));
}
if ($competitor['scoreHome'] < $competitor['scoreAway'] ) {
$teams = array(array('away'=>$competitor['away']));
}
}
print_r($teams);
我需要的是重新编制这个数组的索引,并生成array\u chunk($teams,2)
,这样我就可以将信息保存到数据库中,并再次执行此过程,直到整个比赛结束
我想要的输出:
Array
(
[0] => Array
(
[0] => Array
(
[teamName] => testis1
)
[1] => Array
(
[teamName] => testis5
)
)
[1] => Array
(
[0] => Array
(
[teamName] => wdefgr
)
[1] => Array
(
[teamName] => testis2
)
)
我该怎么做呢?我相信你想做的事情是这样的:
$teams = array();
foreach ($competitors as $competitor) {
$match = array();
/* fill this match with the info you want, eg. */
$match[] = array(array('home'=>$competitor['home']));
$match[] = array(array('away'=>$competitor['away']));
$team[] = $match;
}
print_r($teams);
我省略了内部条件,因为它们与答案无关,但你必须做你必须做的事情来填写内部信息。(代表OP发布解决方案)
我对八达通的答案做了更多的修改(请看下面的评论),并对代码进行了调整,使其能够完美工作。八达通回答中的示例显示一个索引太多,因此我提出以下建议:
foreach ($competitors as $competitor) {
if ($competitor['scoreHome'] > $competitor['scoreAway']) {
$match[] = array('home'=>$competitor['home']);
}
if ($competitor['scoreHome'] < $competitor['scoreAway'] ) {
$match[] = array('away'=>$competitor['away']);
}
}
$matches = array_chunk($match, 2);
print_r($matches);
你能准确地展示你的预期输出是什么样子吗?是的,我刚刚编辑了这个问题,领带呢?您选中
,并且您的$teams
值在每次迭代时都会被覆盖。不,在本次锦标赛中,平局不是选项
foreach ($competitors as $competitor) {
if ($competitor['scoreHome'] > $competitor['scoreAway']) {
$match[] = array('home'=>$competitor['home']);
}
if ($competitor['scoreHome'] < $competitor['scoreAway'] ) {
$match[] = array('away'=>$competitor['away']);
}
}
$matches = array_chunk($match, 2);
print_r($matches);
Array
(
[0] => Array
(
[0] => Array
(
[away] => testis5
)
[1] => Array
(
[home] => wdefgr
)
)
[1] => Array
(
[0] => Array
(
[away] => testis4
)
[1] => Array
(
[home] => team1
)
)
)