我有一个用PHP编写的多维数组,它包含一个数组数组。我已经阅读了很多关于如何搜索它的内容,但它似乎也是大多数解决方案:
一个。要求您具有唯一的键值,例如产品ID
或
B中。对在数组中返回多个结果感到满意
我希望搜索数组给定圆数(这是最高/第一级数组的数组编号)和一个玩家名称(这将是键的值)球员1或球员2)。
数组看起来像这样:
Array (
[0] => Array ( )
[8] => Array (
[1] => Array (
[Match] => 1
[Player1seed] => (Q)
[Player1name] => Mahut
[Player2seed] => (2)
[Player2name] => Goffin
[Matchscore] => 7-6(1), 6-1
[Round] => Finals
)
)
[7] => Array (
[1] => Array (
[Match] => 1
[Player1seed] => (2)
[Player1name] => Goffin
[Player2seed] =>
[Player2name] => Muller
[Matchscore] => 7-6(4), 6-4
[Round] => Semi-Finals
)
[2] => Array
(
[Match] => 2
[Player1seed] => (Q)
[Player1name] => Mahut
[Player2seed] => (WC)
[Player2name] => Haase
[Matchscore] => 5-7, 6-3, 6-4
[Round] => Semi-Finals
)
)
等
基本上,我需要能够专门搜索一个子集,例如 array [7] ,并返回包含player1或player2作为名称的结果,比如Goffin。
但我不希望它返回其他锦标赛轮次的结果,例如阵列[8] 或阵列[6] ,其中任何一个玩家都是Goffin。
我似乎无法在任何地方找到这个解决方案。我是否错误地设置了我的阵列?或者期望从较小的数据集中获取数据库函数?
任何帮助都将不胜感激。
答案 0 :(得分:0)
这不是我想要解决问题的方式,但是在确定具体的轮数后,我能够通过运行循环获得我想要的结果:
$r = $roundnumber;
foreach( $matchesarray[$r] AS $key=>$data ){
$winnerseed=$data['Player1seed'];
$winnername=$data['Player1name'];
$loserseed=$data['Player2seed'];
$losername=$data['Player2name'];
$matchurl=$data['Matchurl'];
$score=$data['Matchscore'];
if ($p1name == $winnername || $p2name == $losername){
$winner=$p1;
}
else if ($p2name == $winnername || $p1name == $losername){
$winner=$p2;
}
}