php WordPress如何在数组中替换连字符的空间



我需要你的帮助

我有一个阵列山胜地

array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(19) "Courchevel"
    [1]=>
    string(21) "Kitzbuhel"
    [2]=>
    string(14) "St Moritz"
  }
}

我使用foreach

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        echo '<a href="' . esc_url(home_url( $value )) . ' class="link">' . $value . '</a>';
    }
}

但是,HREF中的$值有空间,例如Localhost/st Moritz

如何将所有空间替换为href $ value中的连字符?

谢谢)

尝试此

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        echo '<a href="' . esc_url(home_url( sanitize_title($value))) . ' class="link">' . $value . '</a>';
    }
}

参考 - https://codex.wordpress.org/function_reference/sanitize_title

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        $value_for_text = $value;
        $value_for_url = $value;
        $url = explode(" ",$value);
        $final_url = "";
        if(is_array()){
            foreach($url as $url_text){
                $final_url .= $url_text;
            }
            echo '<a href="' . esc_url(home_url( $final_url )) . ' class="link">' . $value_for_text . '</a>';
        }
        else{
            echo '<a href="' . esc_url(home_url( $value )) . ' class="link">' . $value_for_text . '</a>';
        }        
    }
}

尝试一下。我希望这项工作适合您。谢谢

该问题通过函数str_replace

解决
if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        $spaces= array(" ");
        $value_url = str_replace($spaces, "-", $value);
        echo '<a href="' . esc_url(home_url( $value_url )) . ' class="link">' . $value . '</a>';
    }
}

谢谢大家)

最新更新