Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数组中筛选特定值_Php_Filter_Array Filter - Fatal编程技术网

Php 在数组中筛选特定值

Php 在数组中筛选特定值,php,filter,array-filter,Php,Filter,Array Filter,我想在页面上展示一些特定的团队信息(时间表/结果/排名)。每个团队都有自己的页面,每个页面都包含一个团队id变量 根据这个$team_id,我想通过过滤包含所有团队信息的数组来设置一些其他变量的值 例如: Array ( [0] => Array ( [CompName] => Foo [ClassName] => 2e [Class] => 12 [Type] => R [Teamid] => 88107 [Team] => 1 ) [1] =&g

我想在页面上展示一些特定的团队信息(时间表/结果/排名)。每个团队都有自己的页面,每个页面都包含一个团队id变量

根据这个$team_id,我想通过过滤包含所有团队信息的数组来设置一些其他变量的值

例如:

Array ( 
[0] => Array ( [CompName] => Foo [ClassName] => 2e [Class] => 12 [Type] => R [Teamid] => 88107 [Team] => 1 ) 
[1] => Array ( [CompName] => Foo1 [ClassName] => 4e [Class] => 14 [Type] => R [Teamid] => 88114 [Team] => 1 ) 
[2] => Array ( [CompName] => Foo2 [ClassName] => 123 [Class] => 35 [Type] => B [Teamid] => 12348 [Team] => 3 ) 
)

然后我想用[ClassName]的值设置变量$teamClass,其中[Team]=$Team\u id和[Type]='R'


我可以使用PHP的array_filter()来实现这一点,还是有其他更好的方法?

我建议首先使用团队ID号作为主数组的索引,假设团队ID是唯一的。然后,对于团队页面,您以某种方式确定团队id值(如GET或POST)。然后,每个团队的其余代码都是相同的。这样做的好处是,您可以对所有团队页面使用一个php文件。这是一个基本的设置。需要添加一些检查和html格式等

$teamID = $_GET['teamid'];

echo "Team ID: ".$teamID."\n";

$team = $team_array[$teamID]; // To make the remaining code more concise

echo "Team Name: ".$team['team_name']."\n";
echo "Class Name: ".$team['ClassName']."\n";
echo "Type: ".$team['Type']."\n";
等等

另一种可能是使用for/foreach循环组合在数组中搜索特定的团队ID。这将为您提供特定团队信息所在的主数组的索引

$teamID = $_GET['teamid'];
$team = array();
for ($t = 0; $t < count($main_array); $t++) {
  if ($main_array[$t]['TeamID'] == $teamID) {
    $team = $main_array[$t];
    break;
  }
}

if (count($team) > 0) {
  // Do your team display stuff here
}
$teamID=$\u GET['teamID'];
$team=array();
对于($t=0;$t0){
//你的团队在这里展示东西吗
}

主数组来自一个API,其格式如我的问题所述。我无法改变这一点。好吧,没有什么能阻止你将数组操纵成你想要的形式,只要数组不是太大。我的意思是,用从API获得的数组构建自己的数组。但我会考虑另一种解决方案。我添加了一个循环的示例。这是基本的,但它应该给你一个基础。