Vraag PHP krijgt zowel arraywaarde als arraysleutel


Ik wil een for-lus uitvoeren door een array en ankerelementen maken voor elk element in de array, waarbij de sleutel het tekstgedeelte is en de waarde de URL is.

Hoe kan ik dit doen alstublieft?

Dank je.


28
2018-04-21 14:36


oorsprong


antwoorden:


Dit zou het moeten doen

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

Bewerken: volgens de opmerking van Capsule - gewijzigd in enkele aanhalingstekens.


44
2018-04-21 14:37



Voor sommige specifieke doeleinden wilt u misschien de huidige sleutel van uw array weten zonder dat u een lus moet doorlopen. In dit geval zou u het volgende kunnen doen:

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

In het bovenstaande voorbeeld worden de sleutel en de waarde van de eerste record van uw array weergegeven.

De volgende functies zijn niet erg bekend maar kunnen in zeer specifieke gevallen behoorlijk nuttig zijn:

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

23
2018-05-22 17:23



Soortgelijk:

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

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

2
2018-04-21 14:38



In een sjablooncontext zou het zijn:

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

Je moet je HTML-code niet in je PHP-code schrijven, dus vermijd het navolging van een aantal HTML-codes.

Dit filtert niets, ik hoop dat je array schoon is ;-)


1
2018-04-21 14:40