Togliere uno spazio in un elemento di un array php

di il
4 risposte

Togliere uno spazio in un elemento di un array php

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

  • Re: Togliere uno spazio in un elemento di un array php

    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);
    
  • Re: Togliere uno spazio in un elemento di un array php

    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');
    
  • Re: Togliere uno spazio in un elemento di un array php

    Devi assegnare il risultato della funzione array_map ad una nuova variabile.

    Oppure usa trim direttamente dentro il foreach.
  • Re: Togliere uno spazio in un elemento di un array php

    Perfetto, grazie mille.
Devi accedere o registrarti per scrivere nel forum
4 risposte