2013-09-02 1 views
1

Je voudrais présenter des informations spécifiques sur le thé (horaires/résultats/classement) sur une page. Chaque équipe a sa propre page et chacune de ces pages contient une variable team_id. En fonction de ce $ team_id, je veux définir la valeur de certaines autres variables en filtrant un tableau qui contient les informations de toutes les équipes.Filtrer des valeurs spécifiques dans un tableau

Par exemple:

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) 

)

Ensuite, je veux définir la variable teamClass de $ avec la valeur de [ClassName] où [équipe] == team_id et $ [Type] === 'R'. Puis-je utiliser array_filter() de PHP pour cela ou y a-t-il une autre meilleure solution?

Répondre

0

Je vous recommande d'utiliser le numéro d'identification de l'équipe comme index de votre tableau principal, en supposant que vos ID d'équipe sont uniques. Ensuite, pour la page d'équipe, vous déterminez en quelque sorte la valeur de l'ID de l'équipe (comme dans un GET ou un POST). Le reste du code est alors identique pour chaque équipe. L'avantage de ceci est que vous pouvez utiliser un fichier php pour toutes les pages d'équipe. Voici une configuration de base. Certaines vérifications et le formatage HTML, etc. devront être ajoutés.

$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"; 

et ainsi de suite.

Une autre possibilité serait de rechercher dans le tableau l'ID d'équipe particulier en utilisant une combinaison de boucles for/foreach. Cela vous donnera l'indice du tableau principal dans lequel l'information de l'équipe est en particulier.

$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 
} 
+0

Le tableau principal provient d'une API et est présenté dans un format décrit dans ma question. Je ne suis pas capable de changer ça. – Freeman84

+0

Eh bien, rien ne vous empêche de manipuler le tableau dans la forme que vous voulez qu'il soit, tant que le tableau n'est pas excessivement grand. Ce que je veux dire, c'est construire votre propre tableau à partir de celui que vous obtenez de l'API. Mais je vais réfléchir à une solution différente. –

+1

J'ai ajouté un échantillon d'une boucle à travers. C'est basique mais ça devrait vous donner une base. –

Questions connexes