2017-08-28 8 views
0

最初の行に2文字列の文字列を、次の行に残りの名前を印刷します。PHP:最初の行に文字列配列の2つの名前を残し、次の行に残りの名前を印刷したい

<?php 
$array = array("johnny bairstow alex hales jonh marush","Marcelo nash tim pane alexender","chaudary Mian 
Muhammad Aqeel shaib "); 

for ($i=0; $i < count($array) ; $i++) { 
$len = strlen($array[$i]); 
$string = $array[$i]; 
for ($j = 8; $j < 9 ; $j++) { 
    $string[$j] ='\n'; 
} 


echo $string."</br>"; 
} 
?> 

出力は次のようになります。

johnny doe 
alex hales jonh marush 
Marcelo Nash 
tim pane alexender 
chaudary Mian 
Muhammad Aqeel shaib 
+1

ジョニーのDOEがされている可能性がジョニーbairstow .. – coderodour

+0

配列の最初の文字列がちょうど3言葉の代わりに4が含まれている場合、どのような出力でしょうか? – yoeunes

答えて

0

あなたは、配列の中の文字列の合計について確実である場合は、UE(爆発することができます)機能

<?php 
$array = array("johnny doe alex hales","Marcelo nash tim pane","Mian 
Muhammad Aqeel shaib"); 

for ($i=0; $i < count($array) ; $i++) { 
    $len = strlen($array[$i]); 
    $string = explode(" ", $array[$i]); 
    echo $string[0] . " " . $string[1] . "<br>" . 
    $string[2] . " " . $string[3] . "<br>"; 
} 
?> 

注意し、ある場合には配列内の4文字列ではない戻り値とエラー

編集:

この例題は実行され、エラーを返す3つの合計文字列を使用できます。

<?php 
$array = array("johnny doe alex hales","Marcelo nash tim pane","Mian 
       Muhammad Aqeel shaib"); 

foreach($array as $string) {   

    foreach(explode(' ', $string) as $index => $name) { 

     $br_new_string = true; 

     echo $name . ' '; 

     if(1 == $index % 2) {   
      echo '<br>'; 

      $br_new_string = false;   
     } 
    } 

    echo $br_new_string ? '<br>' : ''; 
} 

が出力:

johnny doe 
alex hales 
Marcelo nash 
tim pane 
Mian Muhammad 
Aqeel shaib 
+0

ありがとうございました –

0

を使用することは、これを試してください文字列内の2番目のスペースを見つけてから

foreach($array as $string) 
{ 
    $sndSpacePos = strpos($string, ' ', strpos($string, ' ')+1); //the offset for strpos is set right after the first space so it found the second one 
    echo substr($string, 0, $sndSpacePos).'<br>'.substr($string, $sndSpacePos+1).'<br>'; //echo the concatenation of string parts before and after the second space with a <br> in the middle 
} 

爆発と2番目のループの使用は避けてください。

0

代替と短いソリューション:

$data = ["johnny doe alex hales", "Marcelo nash tim pane", "Mian Muhammad Aqeel shaib"]; 

// Make them all into one string and explode the values on space 
$names = explode(' ', implode(' ', $data)); 

for ($i = 0; $i < count($names); $i++) { 
    // Echo the name for the index, add one to the index and echo the next one. 
    echo $names[$i++] . ' ' . $names[$i] . '<br />'; 
} 
0

あなたは私があなたに示唆しています、このコードに

<?php 
$array = array("johnny doe alex ","Marcelo nash tim pane","Mian 
Muhammad Aqeel shaib"); 

for ($i=0; $i < count($array) ; $i++) { 

    $len = strlen($array[$i]); 
    $string = explode(" ", $array[$i]); 

    for($n=0; $n < count($string); $n++){ 

     echo $string[$n]; 
     echo ($n & 1) ? '<br>' : ' ' ; 

    } 

} 
?> 
0
<?php 
$data = array(
    "johnny bairstow alex hales jonh marush", 
    "Marcelo nash tim pane alexender", 
    "chaudary Mian Muhammad Aqeel shaib" 
); 

$output = []; 
foreach($data as $names) { 
    $first = strtok($names, ' '); 
    $second = strtok(' '); 
    $the_rest = strtok(null); 
    $output[] = $first . ' ' . $second; 
    $output[] = $the_rest; 
} 
var_export($output); 

出力:

array (
    0 => 'johnny bairstow', 
    1 => 'alex hales jonh marush', 
    2 => 'Marcelo nash', 
    3 => 'tim pane alexender', 
    4 => 'chaudary Mian', 
    5 => 'Muhammad Aqeel shaib', 
) 
+0

ありがとうございました.. buddy –

関連する問題