Visualizzazione dei risultati da 1 a 5 su 5

Discussione: split array by value

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    101

    split array by value

    Salve, sapete dirmi se esiste un metodo per separare un'array in più sottoinsiemi eseguendo la separazione però sui valori e non sulle key?


    esempio:

    Codice PHP:
    Array
    (
        [
    0] => ciao
        
    [1] => come
        
    [2] => stai
        
    [3] => ciao
        
    [4] => come
        
    [5] => va
        
    [6] => ciao
        
    [7] => a presto
    )


    //separazione dall'array con la value "ciao"
    //dovrei ottenere:

    Array1
    (
        [
    0] => ciao
    )

    Array2
    (
        [
    0] => come
        
    [1] => stai
        
    [2] => ciao
    )

    Array3
    (
        [
    0] => come
        
    [1] => va
        
    [2] => ciao
    )

    Array4
    (
        [
    0] => a presto


    fin'ora ho trovato solo separazioni per mezzo delle key, ma nel mio caso la parola "ciao" non si trova sempre nelle posizioni 0, 3, 6....

    Grazie sin d'ora per i suggerimenti

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    $i 1;
    foreach(
    $array as $valore) {
     ${
    "nuovo{$i}"}[] = $valore;
     if (
    $valore == 'ciao'$i++;
    }

    echo 
    '<pre>';
    print_r($nuovo1); // in $nuovo2,$nuovo3,ecc. trovi gli altri valori
    echo '</pre>'

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    101
    funziona!!

    grazie mille!

    ma se dovessi separare una volta per "ciao", l'altra per "come"??

    come potrei fare?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Secondo me anzichè crearti tanti array sarebbe più semplice da gestire una cosa del genere.

    Codice PHP:
    $i 0;
    foreach(
    $array as $valore) {
    $nuovo[$i][] = $valore;
    if (
    $valore == 'ciao'$i++;
    //if ($valore == 'ciao' || $valore == 'come') $i++;
    }

    echo 
    '<pre>';
    print_r($nuovo);
    echo 
    '</pre>'
    Se vuoi splittare anche per altre parole decommenta la riga con l'or e togli quella più su.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    101
    si avevo provato direttamente anch'io


    Grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.