예 :제거 단어를 입력
입력 = 2
텍스트 = 금주 모임의 BB CC
이 될 것이다 : 금주 모임 CC
위치의 입력은 $ _POST [입니다 '위치']
제가
$words = explode(" ", $_POST['string']);
for ($i=0; $i<count($words); $i++){
echo $words[$i] . " ";
}
을
예 :제거 단어를 입력
입력 = 2
텍스트 = 금주 모임의 BB CC
이 될 것이다 : 금주 모임 CC
위치의 입력은 $ _POST [입니다 '위치']
제가
$words = explode(" ", $_POST['string']);
for ($i=0; $i<count($words); $i++){
echo $words[$i] . " ";
}
을
$to_remove = 2;
$text = "aa bb cc";
$words = explode(' ', $text);
if(isset($words[$to_remove -1])) unset($words[$to_remove -1]);
$text = implode(' ', $words);
'$ to_remove = $ _POST [ 'position'] - 1;을 설정할 수 있습니다. OP의 위치 값을 사용하고 설정을 해제 할 때'-1'을 두 번 사용할 필요가 없습니다. – Joe
$input = 2;
$words = explode(" ", $_POST['string']);
unset($words[$input-1]);
$words = implode(" ", $words);
echo $words;
이것은 숙제 문제처럼 들립니다. 그래도 난 그것을 자상 할게요 :
코드 :
<?php
$string = trim($_POST['string']);
$parts = explode(" ", string);
$newString = "";
$position = intval($_POST['position']);
for($a = 0; $a < count($parts); $a++) {
if($a != $position) { // or $a != ($position - 1) depending on if you passed in zero based position
$newString = $newString . $parts[$a] . " ";
}
}
$newString = trim($newString);
echo "Old String: " . $string . "<br />";
echo "New String: " . $newString;
?>
출력 :
Old String: aa bb cc
New String: aa cc
가 큰 총을 잡아 당겨 REGEX!
$string = 'aa bb cc dd';
$input = 2;
$regex = $input - 1;
echo preg_replace('#^((?:\S+\s+){'.$regex.'})(\S+\s*)#', '$1', $string);
출력 :aa cc dd
의 Foreach 루프가 조금 더 쉽게 이해하기 (IMO)을 만드는 경향이있다. 더 깨끗하게 보입니다.
$pos = 2;
$sentence = explode(" ", $_POST['string']);
foreach ($sentence as $index => $word) {
if ($index != $pos - 1) {
$result .= $word . ' ';
}
}
echo $result;
여러 문자열 연결을 수행하는 것이 훨씬 효율적이지 않습니다. 배열로 분해하기 쉽고 원치 않는 원소를 설정 해제 한 다음 다시 결합하십시오. –
더 많은 테스트 케이스를 생각해 볼 수 있습니까? "aa bb, cc"또는 "aa bb. Cc"는 결과물의 문법에 영향을 미칠 것인가? – Cups