Estoy tratando de ejecutar un bucle for a través de cada parte de mi matriz e imprimir un mensaje que diga "mason se escribe m a s o n". Entiendo cómo escribir en un archivo y entiendo el uso de un bucle for para imprimir cada elemento en la matriz, pero no entiendo cómo obtener los datos de la salida del bucle for en una variable que puedo poner en mi función fwrite . Esto es lo que tengo hasta ahora:

<?php
$name = "mason";
$nameLetterArray = str_split($name);
$results = fopen("results.txt", "w");
fwrite($results, $forLoopOutput); //here forLoopOutput would be the "m a s o n" part
fclose($results);

$length = count($nameLetterArray);
for ($i = 0; $i < $length; $i++) {
print $nameLetterArray[$i];
}
0
yes indeed 16 oct. 2018 a las 17:22

2 respuestas

La mejor respuesta

Como ya ha escrito virtualmente el código, solo quedan algunos cambios por hacer ...

$name = "mason";
$nameLetterArray = str_split($name);
$results = fopen("results.txt", "w");
// Create output string to save multiple writes
$output = "";
$length = count($nameLetterArray);
for ($i = 0; $i < $length; $i++) {
     //print $nameLetterArray[$i];
    $output .= $nameLetterArray[$i]." ";  // Add letter followed by a space
}
// Write output
fwrite($results, $name." is spelt ".$output); 
// Close file
fclose($results);

También puede usar un foreach() en el bucle en su lugar

$name = "mason";
$nameLetterArray = str_split($name);
$results = fopen("results.txt", "w");
fwrite($results, $name." is spelt "); 
// Create output string to save multiple writes
$output = "";
foreach ($nameLetterArray as $nameLetter) {
     //print $nameLetterArray[$i];
    $output .= $nameLetter." ";  // Add letter followed by a space
}
// Write output
fwrite($results, $name." is spelt ".$output); 
// Close file
fclose($results);

O (finalmente) podrías usar implode() en lugar del bucle ...

$output = implode(" ", $nameLetterArray);
0
Nigel Ren 16 oct. 2018 a las 14:38

Puede utilizar varios fwrite () en un archivo y, al final, cerrará el puntero del archivo, así:

<?php
$name = "mason";
$nameLetterArray = str_split($name);
$results = fopen("results.txt", "w");
fwrite($results, $forLoopOutput);

// Here you'll write each letter:
for ($i = 0; $i < count($nameLetterArray); $i++) {
  fwrite($results, $nameLetterArray[$i];
}

fclose($results);
?>
0
Ernani Azevedo 16 oct. 2018 a las 14:35