使用关联数组的索引建立可点击的链接

时间:2019-03-29 12:38:48

标签: php jquery arrays wordpress hyperlink

我有一个这样的关联数组

$my_links = [
       'city 1' => 'http://link1',
       'city 2' => 'http://link2',
       'Head Office' => 'http://link3'
    ];

和一些类似的html。 html是由脚本(wordpress博客内容)动态生成的。

<p>
   You can visit our stores at City 1 
   and City 2, 
   or visit our Head office.
</p>

必需的输出:使用高于array的索引

创建可点击的链接
<p>
   You can visit our stores at <a href="http://link1">City 1</a>
   and <a href="http://link2">City 2</a>, 
   or visit our <a href="http://link3">Head office</a>.
</p>

如何使用PHP和/或JQuery实现这一目标?

4 个答案:

答案 0 :(得分:3)

只需使用数组引用:

<p>
   You can visit our stores at <a href="<?php echo $my_links['city 1']; ?>">City 1</a>
   and <a href="<?php echo $my_links['city 2']; ?>">City 2</a>, 
   or visit our <a href="<?php echo $my_links['Head Office']; ?>">Head office</a>.
</p>

答案 1 :(得分:3)

<?php 

$my_links = [
       'city 1' => 'http://link1',
       'city 2' => 'http://link2',
       'Head Office' => 'http://link3'
    ];


$str = "<p>
   You can visit our stores at City 1 
   and City 2, 
   or visit our Head office.
</p>";


foreach ($my_links as $link_title => $link) {
    $str = str_ireplace($link_title,"<a href='$link'>".ucwords($link_title)."</a>",$str);
}

echo $str;

环顾您的$my_links。找到字符串中存在的链接标题,然后使用str_ireplace()用锚标记替换链接标题。

答案 2 :(得分:2)

如果您的内容来自PHP,请使用PHP的str_replace()函数。

此函数的三个参数搜索目的:

  
      
  1. 搜索:字符串或数组

  2.   
  3. 替换:字符串或数组

  4.   
  5. 实际字符串:字符串

  6.   

如果searchreplace是数组,则它们的元素计数应该相同。

现在,找到诸如City 1,City 2和Head Office之类的字符串段,并通过在其上添加<a href="...来替换它们。

代码:

<?php
$my_links = [
       'city 1' => 'http://link1',
       'city 2' => 'http://link2',
       'Head Office' => 'http://link3'
    ];
$content = '<p>
   You can visit our stores at City 1 
   and City 2, 
   or visit our Head office.
</p>';

$find = ['City 1', 'City 2', 'Head office'];
$replace = [
'<a href="'.$my_links['city 1'] . '">City 1</a>',
'<a href="'.$my_links['city 2'] . '">City 2</a>',
'<a href="'.$my_links['Head Office'] . '">Head Office</a>',
 ];
echo  str_replace($find, $replace, $content);
?>

快速更新:

请使用str_ireplace()而不是上面讨论的str_replace(),因为我们不区分大小写,例如city 1City 1。此功能与str_replace()相同,只是不区分大小写。

答案 3 :(得分:1)

您可以尝试

<p>
   You can visit our stores at <a href="<?=$my_links['city 1']?>">City 1</a>
   and <a href="<?=$my_links['city 2']?>">City 2</a>, 
   or visit our <a href="<?=$my_links['Head Office']?>">Head office</a>.
</p>