Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能把'-';这段代码中的单词之间是php吗?_Php_Jquery_Html - Fatal编程技术网

我怎样才能把'-';这段代码中的单词之间是php吗?

我怎样才能把'-';这段代码中的单词之间是php吗?,php,jquery,html,Php,Jquery,Html,下面的代码将像这样回显 ('nice apple'),(' nice yellow banana'),(' good berry ') ('nice-apple'),(' nice-yellow-banana'),(' good-berry ') 我需要做的是,我需要他们像这样 ('nice apple'),(' nice yellow banana'),(' good berry ') ('nice-apple'),(' nice-yellow-banana'),(' good-b

下面的代码将像这样回显

('nice apple'),(' nice yellow banana'),(' good berry  ')
('nice-apple'),(' nice-yellow-banana'),(' good-berry  ')
我需要做的是,我需要他们像这样

('nice apple'),(' nice yellow banana'),(' good berry  ')
('nice-apple'),(' nice-yellow-banana'),(' good-berry  ')
挑战是我不能触摸$str,然后我需要使用“-”来连接单词,如果它们之间有空格,如果使用str_替换空格,它将类似于----漂亮的苹果-。我怎样才能实现这样的目标(“尼斯苹果”),谢谢

<?php
$str="nice apple,
  nice yellow banana,    
  good berry 
 ";

echo $str = "('" . implode("'),('", explode(',', $str)) . "')";
?>

试试
str\u replace

$str="nice apple,
  nice yellow banana,    
  good berry 
 ";

$str = array_map(function($dr){ return preg_replace('/\s+/', '-', trim($dr));},explode(',',$str));
$str = implode(',',$str);

echo $str = "('" . implode("'),('", explode(',', $str)) . "')";
输出:

('nice-apple'),('nice-yellow-banana'),('good-berry')

你需要先把新的线路处理掉,然后它才能工作

<?php
$str="nice apple,
  nice yellow banana,
  good berry
 ";

$arr = explode(',', str_replace([ "\r\n", "\n" ], "", $str));

$arrCount = sizeOf($arr);

for($x = 0; $x < $arrCount; $x++) {
    while (preg_match('/(\w)\s(\w)/', $arr[$x])) {
        $arr[$x] = preg_replace('/(\w)\s(\w)/', '$1-$2', $arr[$x]);
    }
}



echo $str = "('" . implode("'),('", $arr) . "')";
?>

这有点棘手。试试-

$str="('nice apple'),(' nice yellow banana'),(' good berry  ')";

$v = explode(',', $str); // generate an array by exploding the string by `,`
foreach($v as $key => $val) {
  $temp = trim(str_replace(["(", "'", ")"], "", $val)); //remove the brackets and trim the string
  $v[$key] = "('".str_replace(" ", "-", $temp)."')"; // place the `-`s
}
$new = implode(",", $v); // implode them again
var_dump($new);

您更改了输入,以删除导致问题的所有额外空格。哦,我以为他是这样放置的,以便更好地查看。您没有在单词之间放置连字符。你读过问题了吗?是的,我刚意识到我在30秒内发布了更新。哦,我看到你已经接受了,我以为你想保留空格,所以我写了代码来保留它。