web-dev-qa-db-ja.com

PHP配列値と配列キーの両方を取得

配列全体でforループを実行し、配列の各要素にアンカー要素を作成します。ここで、キーはテキスト部分で、値はURLです。

どうすればこれを行うことができますか?

ありがとうございました。

31
Francisc

これはそれを行う必要があります

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

編集:Capsuleのコメントによる-一重引用符に変更。

52
Marek Karbarz

特定の目的のために、ループを実行せずに配列の現在のキーを知りたい場合があります。この場合、次のことができます。

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

上記の例では、配列の最初のレコードのキーと値が表示されます。

以下の関数はあまり知られていませんが、非常に特定の場合に非常に便利です:

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

このような:

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

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

テンプレートコンテキストでは、次のようになります。

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

HTMLコードをPHPコード内に記述しないでください。したがって、大量のHTMLをエコーし​​ないようにしてください。

これは何もフィルタリングしていません。配列がきれいであることを望みます;-)

1
Capsule