Le classeur métallique grinça quand je le tirai. À l'intérieur, des fiches, des photos, des rapports croisés. Chaque dossier avait sa logique. En PHP, ils appelaient ça des tableaux. Des collections. Des listes où tout pouvait s'empiler, se lier, se cacher dans d'autres listes. C'était le cœur du système d'information. Là où les données attendaient d'être utilisées ou trahies.
Tableaux indexés Des listes simples. Numérotées. Comme une file de suspects alignés au poste.
<?php
// Déclaration simple
$armes = ["Colt .45", "Couteau", "Poing américain", "Silencieux"];
// Index : 0 1 2 3
// Déclaration avec array()
$cafes = array("Expresso", "Allongé", "Noisette", "Serré");
// Accès par index
echo $armes[0]; // "Colt .45"
echo $armes[2]; // "Poing américain"
// Modification
$armes[1] = "Couteau papillon"; // Remplace "Couteau"
// Ajout à la fin
$armes[] = "Menottes"; // Index 4 automatique
// Parcourir
foreach ($armes as $arme) {
echo "Arme saisie : $arme<br>";
}
// Arme saisie : Colt .45
// Arme saisie : Couteau papillon
// ...
?>
Tableaux associatifs Là, ça devenait intéressant. Chaque élément avait une clé. Un nom. Un code. Plus de numéros, des identifiants. Comme un dossier avec des étiquettes.
<?php
// Un indic
$indic = [
"nom" => "L'Ombre",
"age" => 42,
"ville" => "Villefranche",
"actif" => true
];
// Accès par clé
echo $indic["nom"]; // "L'Ombre"
echo $indic["ville"]; // "Villefranche"
// Modification
$indic["age"] = 43;
// Ajout
$indic["code"] = "Nuit-7";
// Parcourir
foreach ($indic as $cle => $valeur) {
echo "$cle : $valeur<br>";
}
// nom : L'Ombre
// age : 43
// ville : Villefranche
// ...
// Tableau de tableaux associatifs : une liste de contacts
$contacts = [
["pseudo" => "Le Souriceau", "metier" => "Informaticien", "tarif" => 500],
["pseudo" => "La Brume", "metier" => "Tireur", "tarif" => 3000],
["pseudo" => "Le Tisseur", "metier" => "Faux-monnayeur", "tarif" => 1500]
];
echo $contacts[1]["pseudo"]; // "La Brume"
echo $contacts[1]["tarif"]; // 3000
?>
Tableaux multidimensionnels Des tableaux dans des tableaux. Des dossiers dans des dossiers. Là où l'information se niche profondément.
<?php
// L'organisation d'un réseau
$reseau = [
"ville_nord" => [
"chef" => "Bruno",
"effectifs" => 5,
"activites" => ["contrebande", "paris clandestins"]
],
"ville_sud" => [
"chef" => "Léa",
"effectifs" => 3,
"activites" => ["écoutes", "falsification"]
],
"port" => [
"chef" => "Marcus",
"effectifs" => 8,
"activites" => ["trafic maritime", "stockage"]
]
];
// Accès profond
echo $reseau["ville_nord"]["chef"]; // "Bruno"
echo $reseau["port"]["activites"][0]; // "trafic maritime"
echo count($reseau["ville_sud"]["activites"]); // 2
// Ajout dans un sous-tableau
$reseau["ville_nord"]["contacts"][] = "Le Corbeau";
// Parcourir le réseau
foreach ($reseau as $secteur => $infos) {
echo "<strong>$secteur</strong><br>";
echo "Chef : " . $infos["chef"] . "<br>";
echo "Effectifs : " . $infos["effectifs"] . "<br>";
echo "Activités : ";
foreach ($infos["activites"] as $activite) {
echo "$activite, ";
}
echo "<br><br>";
}
?>
Fonctions utiles sur les tableaux L'arsenal pour manipuler ces dossiers. Trier, filtrer, chercher, compter.
<?php
$suspects = ["Bruno", "Léa", "Marcus", "Anna", "Sam"];
// count : compter
echo count($suspects); // 5
// in_array : vérifier la présence
if (in_array("Léa", $suspects)) {
echo "Léa est dans la liste.<br>";
}
// array_search : trouver la clé
$position = array_search("Marcus", $suspects);
echo "Marcus est à l'index $position.<br>"; // 2
// array_push / array_pop : empiler/dépiler
array_push($suspects, "Nouveau");
$dernier = array_pop($suspects); // Retire et retourne "Nouveau"
// array_merge : fusionner des listes
$groupeA = ["Bruno", "Léa"];
$groupeB = ["Marcus", "Anna"];
$tous = array_merge($groupeA, $groupeB); // ["Bruno", "Léa", "Marcus", "Anna"]
// array_map : appliquer une fonction à chaque élément
$suspectsMaj = array_map(function($nom) {
return strtoupper($nom);
}, $suspects);
// ["BRUNO", "LEA", "MARCUS", "ANNA", "SAM"]
// array_filter : filtrer
$suspectsLongs = array_filter($suspects, function($nom) {
return strlen($nom) > 4;
});
// Garde seulement "Bruno", "Marcus", "Anna"
// array_keys / array_values
$indic = ["nom" => "L'Ombre", "age" => 42, "ville" => "Villefranche"];
$cles = array_keys($indic); // ["nom", "age", "ville"]
$valeurs = array_values($indic); // ["L'Ombre", 42, "Villefranche"]
// Trie
sort($suspects); // Trie par valeur (index réinitialisés)
asort($indic); // Trie associatif par valeur (garde les clés)
ksort($indic); // Trie par clé
?>
Je refermai le classeur. Les tableaux. Des structures de pouvoir. Indexés pour la simplicité, associatifs pour la précision, multidimensionnels pour la complexité. Savoir les manipuler, c'était savoir organiser l'information. Et dans notre métier, l'information, c'était la seule monnaie qui valait encore quelque chose. Le reste n'était que poussière et pluie.