2016-02-05 2 views
-1

Если есть один массив:Реверс строки, используя цикл только в PHP

$arr = array('o', 'v', 'e', 'r','f', 'l', 'o', 'w'); 

И я хочу, чтобы отобразить выход как 1st string = revo и 2nd string = flow используя цикл только в PHP. Не использовать встроенная функция php.

Так как я могу это сделать? Пожалуйста, помогите мне.

+0

Как сказать, где разделить ваш вклад? Просто разделите данные на две части того же размера? – maxhb

+0

В вашем массиве всегда содержится четное количество символов? Что делать, если массив содержит нечетное число символов? –

ответ

0

Решение:

$arr = array('o', 'v', 'e', 'r','f', 'l', 'o', 'w'); 
      |_________________| |_________________| 
        ^    ^
      Reverse this half Keep this half as it is 

Затем цикл через массив для создания первой и второй строки.

$arr = array('o', 'v', 'e', 'r','f', 'l', 'o', 'w'); 

// Reverse the first half of the array 
$arrLength = count($arr); 
for($i = 0; $i < $arrLength/4; ++$i){ 
    $tmp = $arr[$i]; 
    $arr[$i] = $arr[(($arrLength/2) - 1) - $i]; 
    $arr[(($arrLength/2) - 1) - $i] = $tmp; 
} 

// Loop through the array to create first and second string 
$firstString = $secondString = ""; 
for($i = 0; $i < $arrLength; ++$i){ 
    if($i < $arrLength/2){ 
     $firstString .= $arr[$i]; 
    }else{ 
     $secondString .= $arr[$i]; 
    } 
} 

echo "First String: " . $firstString . "<br />"; 
echo "Second String: " . $secondString . "<br />"; 

Выход:

First String: revo 
Second String: flow 
0

попробовать это ..

 <?php 
    $arr = array('o', 'v', 'e', 'r','f', 'l', 'o', 'w'); 
    $str1=''; 
    $str2 =''; 
    //where we gave for loop length as 8(arr length) 
    for($i = 0; $i <8; $i++) { 

     if($i<4){ //which is used to reverse the first half string 

      $j =3; 

      $str1.=$arr[$j-$i]; 
      //where we reverse the order as 3,2,1,0.and concat the each char as string. 
     }else{ 
      $str2 .= $arr[$i]; 
     //rest char is simply passed as string 2 
     } 
    } 

    echo $str1."</br>"; 
    echo $str2; 
    ?> 
+0

Зачем кому-то * попробовать этот *? Хороший ответ объясняет, какие изменения были сделаны, и почему они были сделаны. – Qirel

Смежные вопросы