Visualizzazione risultati 1 fino 4 di 4

Discussione: Variabile in array

  1. #1
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito Variabile in array

    Buongiorno, sto provando ad usare una funzione trovata in rete per dividere nome e cognome.
    Di seguito la funzione:

    Codice PHP:
    <?php
    class splitFullName {

    /**
    * Pattern
    *
    * @var string
    * @access private
    */
    private $pattern = null;

    /**
    * Modello utilizzato per comporre il pattern e distinguere il cognome dal nome
    *
    * @var array
    * @access private
    */
    private $model = array(
    'lastname' => "([adeilo']{0,4}\s*[\w']+)",
    'firstname' => "([\w']+\s*[\w'\.]*\s*[\w'\.]*)"
    );

    public function
    __construct() {
    // Concatena gli elementi di $model per creare il pattern
    $buffer = array();
    foreach (
    $this->model as $key => $pattern) {
    $buffer[] = $pattern;
    }
    $this->pattern = "/^" . implode('\s+', $buffer) . "$/i";
    }

    /**
    * Elabora la stringa contenente il cognome e il nome provando a separare i due
    * elementi in un array
    *
    * @param string $fullName Stringa contenente il cognome e il nome
    * @access public
    * @return array Restituisce un array sulla base dell'attributo $model, se il
    * pattern non viene riconosciuto, l'array conterra' $fullName nel primo
    * elemento
    */
    public function split($fullName) {
    $fullName = trim($fullName);
    $matches = array();
    if (
    preg_match($this->pattern, $fullName, $matches)) {
    $buffer = array();
    for (
    $i = 1, $l = count($matches); $i < $l; $i++) {
    $buffer[] = $matches[$i];
    }
    $result = array_combine(array_keys($this->model), $buffer);
    return
    $result;
    }
    $buffer = array_fill(0, count($this->model), '');
    $buffer[0] = $fullName;
    $result = array_combine(array_keys($this->model), array($buffer, ''));
    return
    $result;
    }

    }
    $s = new splitFullName();
    $fullName = "PIPPO FRANCESCO";
    $result = $s->split($fullName);
    print_r($result);
    ?>
    Funziona bene e il risultato che produce è il seguente:

    Codice:
    Array ( [lastname] => PIPPO [firstname] => FRANCESCO )
    Ora a me servirebbe che firstname e lastname fossero inserite in due variabili.. ossia $nome=firstname e $cognome=lastname...

    Ho provato in tutte le maniere ma non riesco.. Cosa sbaglio ??

  2. #2
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ovviamente ho gia provato usando $result[0]=$nome etc... mi dice che non c'è nulla all'interno... invece l'array di $result riporta quei due valori..

  3. #3
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Supponiamo che la variabile $result contenga i dati come da te indicato (array('lastname' => "PIPPO", 'firstname' => "FRANCESCO")):
    Codice PHP:
    $nome = $result['firstname'];
    $cognome = $result['lastname'];

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    In merito all'argomento consiglio anche di leggere https://www.kalzumeus.com/2010/06/17...e-about-names/.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •