Togliere uno spazio in un elemento di un array php

di Anonimizzato28377 il
4 risposte
Ciao a tutti, non riesco a risolvere un problema che ho su un array.
Dall'array 'availabilities' estraggo tre campi, di cui il primo è una data.
Questo campo viene memorizzato con uno spazio bianco davanti alla data e nel file Prova.xlsx il campo non è leggibile proprio perchè ha lo spazio bianco davanti: non so come fare a toglierlo.

Di seguito il codice che utilizzo.
Grazie mille


$csv = 'data,id camera,disponibilita,' . "\n";
foreach($d_json['availabilities'] as $item)
{
        $csv .= ''.$item['from'].',' . $item['room_type_id'].','.$item['real_availability'][0].','.'' . "\n";
}
...

$a = explode(",", $csv);
$columnArray = array_chunk($a, 3); 
$spreadsheet->getActiveSheet()
    ->fromArray(
        $columnArray,   // The data to set
   );

//  // (b) salvo il risultato nel file xlsx
$writer = new Xlsx($spreadsheet);
$writer->save('Prova.xlsx');

4 Risposte

  • Ciao,

    per rimuovere spazi da una stringa utilizza la funzione trim() che li rimuove sia all'inizio che alla fine della stringa
    
    $stringa = ' Pippo  ';
    var_dump(trim($stringa));
    
    Se invece vuoi rimuovere gli spazi agli elementi di un array usa la funzione array_map che applica una funzione di callback (trim in questo caso) all'array passato come secondo parametro
    
    array_map('trim', $array);
    
  • Grazie flaviors200,
    ho inserito la funzione trim() come riporto sotto, ma il campo data ha sempre lo spazio bianco davanti. Non riesco a capire ...
    
    $csv = 'data,id camera,disponibilita,' . "\n";
    foreach($d_json['availabilities'] as $item)
    {
            $csv .= ''.$item['from'].',' . $item['room_type_id'].','.$item['real_availability'][0].','.'' . "\n";
    }
    ...
    
    $a = explode(",", $csv);
    
    [b]array_map('trim', $a);  //  applica trim (togli spazi) sull'array $a[/b]
    
    $columnArray = array_chunk($a, 3); 
    $spreadsheet->getActiveSheet()
        ->fromArray(
            $columnArray,   // The data to set
       );
    
    //  // (b) salvo il risultato nel file xlsx
    $writer = new Xlsx($spreadsheet);
    $writer->save('Prova.xlsx');
    
  • Devi assegnare il risultato della funzione array_map ad una nuova variabile.

    Oppure usa trim direttamente dentro il foreach.
  • Perfetto, grazie mille.
Devi accedere o registrarti per scrivere nel forum
4 risposte