Я много раз искал. Почти каждый ответ о массиве. В моей ситуации я хочу удалить тот же номер.
<?php $term="1,2,3.4"; $n='2'; //I want to remove 2 when the $n equal one number of $term. // echo out like 1,3,4 ?>
Это должно сработать для вас:
(Я предполагаю, что 1,2,3.4
точка была только опечаткой)
<?php $term = "1,2,3,4"; $n = "2"; $arr = explode(",", $term); if(($key = array_search($n, $arr)) !== FALSE) //^^^ to make sure when '$n' is not found in the array, that it doesn't unset the first array element unset($arr[$key]); echo implode(",", $arr); ?>
с<?php $term = "1,2,3,4"; $n = "2"; $arr = explode(",", $term); if(($key = array_search($n, $arr)) !== FALSE) //^^^ to make sure when '$n' is not found in the array, that it doesn't unset the first array element unset($arr[$key]); echo implode(",", $arr); ?>
Вывод:
1,3,4
Я много раз искал.
И вы не нашли str_replace()
?
$string = '1,2,3,4,5,6;' $n = '2'; $string = str_replace($n, '', $string); $string = str_replace(',,', ',', $string);
Не нужно тратить память на массивы или использовать регулярные выражения.
$term = "1,2,3,4"; $n = 2; $term_array = explode(',', $term); $n_key = array_search($n, $term_array); if ($n_key !== false) unset($term_array[$n_key]); $new_terms = implode(',', $term_array);
с$term = "1,2,3,4"; $n = 2; $term_array = explode(',', $term); $n_key = array_search($n, $term_array); if ($n_key !== false) unset($term_array[$n_key]); $new_terms = implode(',', $term_array);
Ouput:
1,3,4
Надеюсь это поможет
$n = '2'; $str = '2,1,2,3,4,5,6,2'; $pattern = '/,2|,2,|2,/'; $after = preg_replace($pattern, '', $str); echo $after
Ouput
1,3,4,5,6
mybe это проще