【发布时间】:2015-07-13 09:25:20
【问题描述】:
我有一个用 php 编写的多维数组,它包含一个数组数组。我已经阅读了很多关于如何搜索的内容,但似乎大多数解决方案都是:
A.要求您对键具有唯一值,例如产品 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。
但我不希望它返回其他锦标赛回合的结果,例如 array[8] 或 array[6] 其中任一玩家都是 Goffin。 p>
我似乎无法在任何地方找到此解决方案。我是否错误地设置了我的阵列?还是期望来自较小数据集的数据库功能?
任何帮助将不胜感激。
【问题讨论】:
-
我需要能够搜索包含 player2 作为名称的数组 [7],比如说 Goffin。但我不希望它返回数组 [8],其中任一玩家都是 Goffin。 - 有什么区别?
-
如果数组布局有些混乱: 第一维是比赛轮数,0-9 第二维是该轮的比赛编号 1-16 第三维是细节的具体比赛。因此,我需要能够在特定回合中找到特定比赛,并返回一个密钥,以便我提取该特定比赛的其余信息。举个例子,我知道 Goffin 参加了第 7 轮比赛,但我需要能够定位比赛详情,如何搜索访问存储在数组 [7][1] 中的数组并获取比赛详情。
-
@splash58 这很重要,因为每场比赛的统计数据都不同。但是参加锦标赛的玩家最多可以在不同的回合中进行 7 场比赛。在给定特定回合和球员姓名的情况下,我试图找到一名球员参加的比赛。我可能不得不返回并创建一个包含另外 2 个参数的一维数组。我只是想通过让每一轮都有自己的匹配数组来寻找一个更优雅、更有效的解决方案。
-
我用文字理解了你的逻辑,但你真的需要改变数组结构,因为索引 [7][1][player] 和 [8][1][player] 没有显示出含义上的差异.
-
我想我现在真的很困惑。我认为更像是一个数据库设置,我想我认为 [7][1][player] 是一个布局,表格代表 [round number] [match number] [player]。您希望如何构造数组来完成此操作? @splash58
标签: php arrays multidimensional-array