web-dev-qa-db-fra.com

PHP récupère à la fois la valeur du tableau et la clé du tableau

Je veux exécuter une boucle for à travers un tableau et créer des éléments d'ancrage pour chaque élément du tableau, où la clé est la partie texte et la valeur est l'URL.

Comment puis-je faire cela s'il vous plaît?

Je vous remercie.

31
Francisc

Cela devrait le faire

foreach($yourArray as $key => $value) {
    //do something with your $key and $value;
    echo '<a href="' . $value . '">' . $key . '</a>';
}

Modifier: selon le commentaire de Capsule - changé en guillemets simples.

52
Marek Karbarz

À des fins spécifiques, vous souhaiterez peut-être connaître la clé actuelle de votre tableau sans faire de boucle. Dans ce cas, vous pouvez effectuer les opérations suivantes:

reset($array);
echo key($array) . ' = ' . current($array);

L'exemple ci-dessus montrera la clé et la valeur du premier enregistrement de votre tableau.

Les fonctions suivantes ne sont pas très connues mais peuvent être très utiles dans des cas très spécifiques:

key($array);     //Returns current key
reset($array);   //Moves array pointer to first record
current($array); //Returns current value
next($array);    //Moves array pointer to next record and returns its value
prev($array);    //Moves array pointer to previous record and returns its value
end($array);     //Moves array pointer to last record and returns its value
25
DrupalFever

Comme ça:

$array = array(
    'Google' => 'http://google.com',
    'Facebook' => 'http://facebook.com'
);

foreach($array as $title => $url){
    echo '<a href="' . $url . '">' . $title . '</a>';
}
2

Dans un contexte de modèle, ce serait:

<?php foreach($array as $text => $url): ?>
    <a href="<?php echo $url; ?>"><?php echo $text; ?></a>
<?php endforeach; ?>

Vous ne devez pas écrire votre code HTML dans votre code PHP, donc évitez de faire écho à un tas de code HTML.

Cela ne filtre rien, j'espère que votre tableau est propre ;-)

1
Capsule