我在数据库条目中有一个充满这样名字的数组:
Bob Smith, Bob Smith, Bob Smith, Bob Smith
我需要将数组输出到每个名称成为单个链接的位置,如下所示:
<a href="bob-smith.php">Bob Smith</a>, <a href="bob-smith.php">Bob Smith</a>, <a href="bob-smith.php">Bob Smith</a>, <a href="bob-smith.php">Bob Smith</a>
所以我需要仅从该数据库条目中的名称创建这些链接。有什么想法吗?
答案 0 :(得分:2)
您可以通过以下简单方式完成:
<?php
$as = array('Bob Smith', 'Bob Smith', 'Bob Smith', 'Bob Smith');
$s = "";
foreach ($as as $a)
$s .= '<a href="', str_replace(" ", "-", strtolower($a)), '.php">', $a, '</a>, ';
echo trim($s, ", ");
?>
更新了,修剪了逗号。我建议最好的方法是使用数组和implode
。
<?php
$as = array('Bob Smith', 'Bob Smith', 'Bob Smith', 'Bob Smith');
$s = array();
foreach ($as as $a)
$s[] = '<a href="', str_replace(" ", "-", strtolower($a)), '.php">', $a, '</a>, ';
echo implode(", ", $s);
?>
答案 1 :(得分:2)
试试吧。
$name = 'Bob Smith, Bob Smith, Bob Smith, Bob Smith';
$arr = explode(", ", $name);
$out = array();
foreach($arr as $value){
$link = strtolower(implode("-", explode(" ", $value)));
$out[] = '<a href="'.$link.'.php">'.$value.'</a>';
}
$str = implode(", ", $out);
如果现在我们回显$str
,那么输出就是链接。无法查看标签。所以使用htmlspecialchars
。
结果
echo htmlspecialchars($str); // <a href="bob-smith.php">Bob Smith</a>, <a href="bob-smith.php">Bob Smith</a>, <a href="bob-smith.php">Bob Smith</a>, <a href="bob-smith.php">Bob Smith</a>
答案 2 :(得分:1)
尝试这样的事情
$names = array('Bob Smith', 'John Doe');
foreach ($names as $name) {
echo '<a href="'. str_replace(' ', '-', strtolower($name)) .'.php">'. $name . '</a>';
}
答案 3 :(得分:1)
您可以使用明显的foreach或array_map:
<?php
$names = ['Bob Smith', 'Bob Smith', 'Bob Smith', 'Bob Smith'];
$links = array_map(function($name) {
$url = strtolower(str_replace(' ', '-', $name)) . '.php';
return '<a href="' . $url . '">' . $name . '</a>';
}, $names);
echo implode('<br/>', $links);
答案 4 :(得分:0)
使用简单的foreach:
$names = array('Steve Waugh', 'Mark Waugh', 'Adam Gilchrist');
$links = array();
if (! empty($names)) {
foreach ($names as $name) {
$urlTo = strtolower(str_replace(' ', '-', $name)) . '.php';
$links[] = '<a href="'.$urlTo.'">' . $name . '</a>';
}
}
echo '<pre>';print_r($links);echo '</pre>';
<强>输出:强>
Array
(
[0] => <a href="steve-waugh.php">Steve Waugh</a>
[1] => <a href="mark-waugh.php">Mark Waugh</a>
[2] => <a href="adam-gilchrist.php">Adam Gilchrist</a>
)
答案 5 :(得分:0)
<?php
$names = array('Bob Smith', 'John Smith');
foreach ($names as $name) {
echo preg_replace(array("#[\s-]+#"), array("-"), trim(strtolower($name))).'.php';
}
?>