2013-06-18 27 views
0

實施例:刪除Word通過位置輸入

輸入= 2

文本= AA BB CC

將變爲:AA CC

用於位置的輸入是$ _POST [ '位置']

我有

$words = explode(" ", $_POST['string']); 
for ($i=0; $i<count($words); $i++){ 
    echo $words[$i] . " "; 
} 
+0

你能想到更多的測試用例嗎? 「aa bb,cc」或「aa bb。Cc」是否會影響輸出的語法,這很重要嗎? – Cups

回答

2
$to_remove = 2; 
$text = "aa bb cc"; 

$words = explode(' ', $text); 
if(isset($words[$to_remove -1])) unset($words[$to_remove -1]); 
$text = implode(' ', $words); 
+1

你可以設置'$ to_remove = $ _POST ['position'] - 1;'它使用OP的位置值,並在取消設置時刪除'-1'兩次。 – Joe

0
$input = 2; 
$words = explode(" ", $_POST['string']); 
unset($words[$input-1]); 
$words = implode(" ", $words); 
echo $words; 
0

這聽起來像一個家庭作業問題。我將它取刺,但:

代碼:

<?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 
0

拉出大槍正則表達式

$string = 'aa bb cc dd'; 
$input = 2; 

$regex = $input - 1; 
echo preg_replace('#^((?:\S+\s+){'.$regex.'})(\S+\s*)#', '$1', $string); 

輸出:aa cc dd

0

foreach循環往往更容易一點理解(IMO)。看起來也很乾淨。

$pos = 2; 
$sentence = explode(" ", $_POST['string']); 

foreach ($sentence as $index => $word) { 
    if ($index != $pos - 1) { 
     $result .= $word . ' '; 
    } 
} 

echo $result; 
+0

效率低得多,做多個字符串連接。更容易爆炸成一個數組,取消設置不需要的元素,然後重新加入。 –