2016-03-08 75 views
-1

任何人都幫我如何使這項工作一樣爆炸的功能和內爆功能如何使這項工作同樣功能的爆炸和內爆功能

+2

'函數myExplode($分界,$串,$極限= PHP_INT_MAX){返回爆炸($分界,$串,$限制); }' –

+1

你想達到什麼目的?你試過什麼了? – user1859022

+0

如果您確實想手動執行此操作,請查看strpos()和substr()。你應該能夠用這兩個函數和一些迭代來完成它。 – carbide20

回答

0
<? 
function my_implode($array, $delimiter){  
    end($array); //Set the internal pointer of an array to its last element 
    $end = key($array); // Fetch a key from the array 
    $final_string = ""; 
    foreach ($array as $key => $value) { 
     $final_string .= $value; // adds to the string. 
     if($key != $end) $final_string .= $delimiter; //If not end of array adds the delimiter to the string 
    } 

    return $final_string; 
} 

function my_explode($string, $delimiter){  
    $array = preg_split("/".$delimiter."/", $string); 
    return $array; 
} 

// test explode/implode: 

$string = "this is string djhf sjs jkdfh skjfjdsf hkdsjfh kjsd fhks"; 
$delimiter = " "; 
$array = my_explode($string, $delimiter); 

echo "<br>Test Explode, <br><b>String:</b> ".$string."<br><br>"; 
echo "<b>Result:</b><br>"; 
echo "<pre>"; 
print_r($array); 
echo "</pre>"; 

echo "<br><br><br>"; 

echo "<br>Test Implode:<br><br>"; 
$string_final = my_implode($array, " ") ; 
echo "Result:<br>". $string_final; 
echo "<br><br><br>"; 
if ($string == $string_final) { 

    echo "<b>Test Successful.</b> <br> <br>Original String: <br>".$string. "<br>Final String:<br>". $string_final; 
    echo "<b><br>String are identical</b>"; 
} else { 
    Echo "<b>Test Failed!</b> <br><br>Original String:<br>".$string. "<br>Final String:<br>". $string_final; 
} 
+0

幫助我添加偶數直到奇數已給出 使用提示輸入數字,直到用戶給出偶數。 一旦用戶給出一個奇數。該程序停止輸入。所有給定的偶數總結並顯示爲輸出。 –

+0

首先,你所問的是一個單獨問題的不同話題。按照這樣發佈。第二,你不應該只是來這裏,要求有人爲你做事,就像它只是免費的糖果一樣。 閱讀此平臺的目的和規則並嘗試理解它。 如果人們對你的問題做出貢獻,至少應該有投票權和反饋意見,而不是傾倒另一個問題,期望人們做你的功課。 – BeoWulf

1

讓我們先看看簡單的術語是什麼爆炸做:(從php.net)

返回一個字符串數組,其中每個字符串是一個字符串的子字符串形成的字符串分割由字符串分隔符形成的邊界。

這意味着

explode(' ', '1 2 3 4 5 6 7 8'); // will return the array of strings 
// array(
// 0 => '1', 
// 1 => '2', 
// 2 => '3', 
// 3 => '4', 
// 4 => '5', 
// 5 => '6', 
// 6 => '7', 
// 7 => '8' 
//) 

在上面的例子中,分隔符是空白和該字符串是1 ... 8

同樣允許在僞代碼打破了這一點:

  1. 函數需要2個參數,分隔符和字符串
  2. 創建一個空數組
  3. 查找字符串的長度
  4. 查找字符串中的定界符的第一位置
  5. 取子串從字符串直到定界符
  6. 存儲中的子串的陣列中的第一位置
  7. 重複步驟3-6,直到字符串長度爲零。
  8. 返回陣列

 

function letsExplode(String $delimiter, String $string): array 
{ 
    $arr = []; 
    while(strlen($string) > 0) 
    { 
    $pos = strpos($string, $delimiter); 
    if($pos) 
    { 
     $arr[] = trim(substr($string, 0, $pos)); 
     $string = ltrim(substr($string, $pos), $delimiter); 
    } else { 
     $arr[] = trim($string); 
     $string = ''; 
    } 
    } 
    return $arr; 
} 

letsExplode(' ', '1 2 3 4 5 6 7 8'); or letsExplode(',', '1, 2, 3, 4, 5, 6, 7, 8'); 
// array(
// 0 => '1', 
// 1 => '2', 
// 2 => '3', 
// 3 => '4', 
// 4 => '5', 
// 5 => '6', 
// 6 => '7', 
// 7 => ' 8' 
//)