2017-07-05 1 views
1

Je suis nouveau à PHP et aurait besoin d'aide si possible.Comment créer un tableau PHP avec 2 variables pour chaque élément sans utiliser d'objet?

J'ai le tableau

array("Name" => $userName, "Age" => $userAge); 

Cela fonctionne pour un utilisateur mais permet de dire que je voulais ajouter plusieurs utilisateurs qui auront tous un nom et l'âge comment pourrais-je le faire? Au lieu de passer est $userName aurais-je à lui passer un tableau de noms d'utilisateurs et au lieu de $userage un tableau des âges de l'utilisateur, ce qui le rend multidimensionnel?

Aussi pour mes buts je ne peux pas mettre le nom d'utilisateur et l'userage dans un objet et puis l'ajoutez simplement au tableau.

Répondre

3

Une façon est:

array(
    array("Name" => $userName, "Age" => $userAge), 
    array("Name" => $userName1, "Age" => $userAge1), 
    array("Name" => $userName2, "Age" => $userAge2) 
    ... 
); 
1

Typecast les variables $ userName et userAge $ à un tableau -

$userName = (array)$userName; 
$userAge = (array)$userAge; 

itérer sur eux pour un traitement ultérieur. Cela ne ferait alors aucune différence si la taille du tableau était de un ou plusieurs.

+0

Comment cela crée-t-il un tableau de plusieurs utilisateurs? Il fait juste un tableau de 1 utilisateur. – Barmar

2

Voici un exemple de code qui devrait résoudre votre problème. Les deux tableaux d'entrée, noms et âges, n'ont pas besoin d'être de la même taille, et le tableau de sortie insérera les valeurs par défaut ('N/A' pour les noms, -1 pour les âges) où un nom ou un âge correspondant est manquant.

$userNames = ['name1', 'name2', 'name3', 'name4']; 
$userAges = [26,14,99]; 
$userNamesAndAges = []; 

for ($i=0; $i < max(count($userNames), count($userAges)); $i++) { 
    if (isset($userNames[$i])) { 
     $userName = $userNames[$i]; 
    } else { 
     $userName = 'N/A'; 
    } 

    if (isset($userAges[$i])) { 
     $userAge = $userAges[$i]; 
    } else { 
     $userAge = -1; 
    } 

    $userNamesAndAges[] = [ 
     'Name' => $userName, 
     'Age' => $userAge 
    ]; 
} 

foreach ($userNamesAndAges as $obj) { 
    $name = $obj['Name']; 
    $age = $obj['Age']; 
    echo("Name: $name, Age: $age<br>"); 
} 

Sorties:

Nom: Nom1, Âge: 26
Nom: NAME2 Age: 14
Nom: nom3, Âge: 99
Nom: nom4, Âge:

-1