我的字符串是这样的
22,31,30
我想从此字符串中删除31,
,因此它应该变为:22,30
我正在使用它:
$string = '21,31,30';
$newstring = str_replace("31", "", $string);
echo $newstring = trim($newstring, ",");
但它回应了这个:21,,30
请帮忙!
答案 0 :(得分:2)
它也将解决你的第一个和最后一个元素问题: 演示:https://eval.in/86932
$string = '31,21,31,30,31';
$newstring = str_replace("31", "", $string);
$newstring =trim(str_replace(",,", ",", $newstring),',');
echo $newstring;
答案 1 :(得分:2)
如何使用数组使其更清洁,便携和可重复使用?
$string = "21,31,30";
$values = explode(",", $string);
$toRemove = '31';
$values = array_filter($values, function($v) use ($toRemove) {
if ($v != $toRemove) {
return true;
}
});
$newString = implode(",", $values);
$ newString现在包含“21,30”
答案 2 :(得分:1)
您在str_replace
中遗漏了一个逗号。试试这个
$newstring = str_replace("31,", "", $string);
如果您需要删除任意元素,可以执行以下操作::
$string='21,31,30';
$array=explode(",",$string);
$index=1; //Will remove the 2nd element of the array;
array_splice($array, $index, 1);
$newstring=implode(",",$array);
答案 3 :(得分:1)
trim
仅从字符串的开头或结尾删除字符,而不是从中间删除。
如果您不知道数字后是否会有逗号,特别是如果您想从长列表中删除一堆数字,您可以尝试类似
$string = '21,31,30';
$newstring = str_replace("31", "", $string);
while (strpos($string,",,")
$string = str_replace(",,",",",$string);
也就是说,删除需要删除的任何数字,然后用一个逗号替换“,,”(双逗号)的任何实例。如果您删除了一堆数字并且最后连续使用了三到四个逗号,那么while
就会出现。
答案 4 :(得分:1)
如果您的值将在字符串的末尾,您将have a problem
,并且您将使用修剪功能。试试这个:
$string = '44, 55, 31';
$array = explode(",", $string);
$resultArray = unset($array[array_search('31', $array)]); //here you delete your 31
$resultstring = implode(",", $resultArray); //here will be result string without 31
答案 5 :(得分:1)
这将允许您从字符串中删除任何数字,无论它在哪个位置。
$string = "21,14,15,67";
$remove = 14;
$new = array();
$arr = explode(",", $string);
foreach($arr as $val){
if($val != $remove){
$new[] = $val;
}
}
$string = implode(",", $new);
echo $string;
答案 6 :(得分:0)
$newstring = str_replace("31,", "", $string);
你错过了想要取代的逗号!
答案 7 :(得分:0)
你能确定字符串旁边有逗号吗?如果是,那么您可以执行以下操作:
$string = '21,31,30';
$newstring = str_replace("31", "", $string);
$newstring2 = str_replace(",,", "", $newstring);
echo $newstring2 = trim($newstring2, ",");
以上方法可行(虽然不优雅) - 它会确保如果31周围有逗号,它将删除它。但是,它也会删除任何空的物品,例如“21,30” - 在更换后它将是“21,30”。