Ciao ragazzi.
Si può ottenere il totale dei risultati elaborati tramite foreach?
Me lo fate un esempio?
Codice PHP:
$stringa = array('parola1', 'parola2', 'parola3', 'parola4', 'parola5');
foreach($stringa as $category)
Ciao ragazzi.
Si può ottenere il totale dei risultati elaborati tramite foreach?
Me lo fate un esempio?
Codice PHP:
$stringa = array('parola1', 'parola2', 'parola3', 'parola4', 'parola5');
foreach($stringa as $category)
che vuol dire il numero di risultati elaborati? elaborati da chi? cosa? dove? che risultati? il count($stringa) ti serve? che situazione? che scenario? da dove veniamo? dove andiamo? ma la gallino o l'uovo prima? e il tacchino?
![]()
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
Con count($stringa) ottieni il numero di elementi contenuti nell'array $stringa, oppure puoi fare una cosa del genere:
Alla fine la variabile $count conterrà il numero di elementi contenuti nell'array.Codice PHP:
$stringa = array('parola1', 'parola2', 'parola3', 'parola4', 'parola5');
$count = 0;
foreach($stringa as $category) {
$count++;
...
}
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Eh si, hai proprio ragione, ho posto male la domanda.
In pratica vorrei avere il totale degli elementi elaborati dal foreach. Si può fare?
aridaje....Originariamente inviato da DigItalWarrior
Eh si, hai proprio ragione, ho posto male la domanda.
In pratica vorrei avere il totale degli elementi elaborati dal foreach. Si può fare?
il fatto è che se nel tuo foreach non ci sono break, ti basta fare un count($stringa) per sapere quanti "giri" farà il foreach, in caso contrario va bene l'idea data nel post precedente
quindi:
Codice PHP:
//1)
$stringa = array(...);
foreach($stringa as $category)
//...do something
echo "totale elaborati: ".count($stringa);
//2)
$tot=0;
foreach($stringa as $category){
$tot++;
if(condizione)
break;
}
echo "giri effettuati $tot"
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
Infatti avevo già provato come mi ha consigliato Satifal (grazie), ma purtroppo non funzionando ho dovuto chiedere qui:
Posto il codice originale cosi magari mi aiutate meglio a posizionare il count():
Codice PHP:
$testo = $post->post_content;
$stringa = array('social network', 'marines', 'divieto per i marines', 'motivazione', 'attacchi');
foreach($stringa as $category)
$testo = preg_replace("/($category)/i", '[b]<span style="background-color: #CCFF99">$1</span>[/b]', $testo);
echo $testo;
}
Con la prima delle due opzioni ho provato e mi da il totale ma delle parole che si trovano nell'array indipendentemente da quelle trovate. Se le parole nell'array sono 7 e ne trova 1 mi da sempre 7.Originariamente inviato da Santino83_02
aridaje....
il fatto è che se nel tuo foreach non ci sono break, ti basta fare un count($stringa) per sapere quanti "giri" farà il foreach, in caso contrario va bene l'idea data nel post precedente
quindi:
Codice PHP:
//1)
$stringa = array(...);
foreach($stringa as $category)
//...do something
echo "totale elaborati: ".count($stringa);
//2)
$tot=0;
foreach($stringa as $category){
$tot++;
if(condizione)
break;
}
echo "giri effettuati $tot"
ah ok vedi che il problema è l'italiano
se non specifichi che per "risultati trovati" intendi quelli di un match, è un cavolo ogni consiglio dato...credo che sia quindi:
o qualcosa di simile, vedi http://php.net/manual/en/function.preg-replace.php esempio 6Codice PHP:
$testo = $post->post_content;
$stringa = array('social network', 'marines', 'divieto per i marines', 'motivazione', 'attacchi');
foreach($stringa as $category){
$results = 0;
$testo = preg_replace("/($category)/i", '[b]<span style="background-color: #CCFF99">$1</span>[/b]', $testo,-1,$results);
echo $testo;
echo "trovati per $category $results occorrenze";
}
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
Ehehehe, ma come, io che sono laureato in lingua italianica mi dici che il problema è l'Italiano? Magari il problema è il linguaggio tecnico...
Scherzi a parte e tornando allo script:
Come avrai già capito lo script mi serve per evidenziare in un articolo le parole che si trovano nell'array. Nel modo in cui l'ho proposto nel mio primo post funziona a dovere ma successivamente si è reso necessario il contatore.
Ora, nel modo in cui me lo hai proposto nel tuo ultimo post, purtroppo, mi ripete tutto l'intero articolo tante volte quante sono le parole dell'array.
In pratica io vorrei ottenere qualcosa che alla fine dia il totale delle parole trovate ma senza ripetere, ovviamente, l'articolo.
ma il contatore a che ti serve? Oo
cmq:
così?Codice PHP:
$testo = $post->post_content;
$stringa = array('social network', 'marines', 'divieto per i marines', 'motivazione', 'attacchi');
$results = array();
foreach($stringa as $category){
$testo = preg_replace("/($category)/i", '[b]<span style="background-color: #CCFF99">$1</span>[/b]', $testo,-1,$results[$category]);
}
//print articolo
echo "il mio bell'articolo con le parole evidenziate
$testo";
//print report
foreach($results as $category => $tot)
echo "trovati n° $tot per la parola $category
";
ovviamente io do per scontato che la prima parte del preg_replace (quella fino al "-1") sia funzionante già da prima
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages