Individuare parte di un elemento in un array e ottenere la chiave

giuseppeI

Utente Attivo
25 Giu 2012
41
0
0
Salve a tutti,
la funzione "array_search" individua un elemento all'interno di un array e ne restituisce l'indice ovvero la posizione all'interno dell'array stesso. Questo funziona se l'elemento stesso è costituito da un unico termine. Esiste una funzione o un modo per individuare l'elemento anche quando è formato da più termini e se ne indica soltanto uno?
Cerco di essere più chiaro, mettiamo di avere il seguente array:
PHP:
$nome[0]="caterina longo";
$nome[1]="silvia la bella";
$nome[2]="nunzio de angelis";
$nome[3]="girolamo savonarola";
$nome.....

e come elemento di ricerca si indica soltanto, per esempio, bella, si può risalire al suo indice ovvero ad "1" ed in più generale a tutti gli elementi che contengo lo stesso termine, ovvero in questo caso bella?
Grazie
Giuseppe
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Ciao, ti mostro un esempio di come farei

PHP:
$nome[0]="caterina longo"; 
$nome[1]="silvia la bella"; 
$nome[2]="nunzio de angelis"; 
$nome[3]="girolamo savonarola"; 
$nome[4]="prova bella test";


$bella = prendiChiaveParola('bella',$nome);

var_dump($bella);

function prendiChiaveParola($st,$array){
    $return = array();
    foreach((array)$array as $key => $value) if(strstr($value,$st)) array_push($return,$key);
    return $return;
}
 

giuseppeI

Utente Attivo
25 Giu 2012
41
0
0
Intanto ti ringrazio.
però nella mia umiltà ti dico che non ho capito molto bene come funziona la funzione "prendiChiaveParola".
Penso che "var_dump" metta a video le varie chiavi dell'elemento. A me servirebbe però un array (non a video) con i soli indici da poter utilizzare in seguito.
Grazie ancora.
Giuseppe
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Intanto ti ringrazio.
però nella mia umiltà ti dico che non ho capito molto bene come funziona la funzione "prendiChiaveParola".
Penso che "var_dump" metta a video le varie chiavi dell'elemento. A me servirebbe però un array (non a video) con i soli indici da poter utilizzare in seguito.
Grazie ancora.
Giuseppe
$bella diventa un array con gli indici di dove trova quella parola nel testo, infatti come vedi nel var_dump risulta 1 e 4 come valori
 

giuseppeI

Utente Attivo
25 Giu 2012
41
0
0
Giusto, avevo trattato $bella come una stringa e non avevo messo l'indice.
Tuttavia i problemi sono stati risolti in parte, perché "$bella" indicizza tutti gli elementi che contengono "bella".
Mettiamo che io voglia selezionare tutti gli elementi di un array che contengano "vino" ed abbia il seguente elenco
- vino bianco
---
---
vino rosso
vino rosato
---
---
- escremento bovino
ecc...
"&bella" mi indicizzerà anche "escremento bovino" in quanto vino è contenuto in bovino.
Come si potrebbe fare?
Grazie ancora
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Cosi dovrebbe andarti bene

PHP:
$nome[0]="caterina longo";  
$nome[1]="silvia la bella";  
$nome[2]="nunzio de angelis";  
$nome[3]="girolamo savonarola";  
$nome[4]="prova bella test"; 
$nome[5]="bellala boh";
$nome[6]=" ciao altra prova randombellala lol";
$nome[7]="bella";
$nome[8]="ciao aloha bellax";


$bella = prendiChiaveParola('bella',$nome); 

var_dump($bella); 

function prendiChiaveParola($st,$array){
    $return = array(); 
   //puoi farlo anche tramite espressione regolare if(preg_match("/\b$st\b/i",$value))
    foreach((array)$array as $key => $value) if(in_array($st,explode(' ',$value))) array_push($return,$key); 
    return $return; 
}  
//il var_dump dovrebbe contenere 3 chiavi array(3) { [0]=> int(1) [1]=> int(4) [2]=> int(7) }
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Come individuare il link sito entrante Google Analytics 1
S [PHP] individuare chiave elemento array PHP 7
C Individuare se presente l'ora legale PHP 3
P individuare i miei clienti online SEO e Posizionamento 3
asevenx Problema Dreamweaver "impossibile individuare i file correlati dinamicamente..." e con i <div> HTML e CSS 1
M individuare l'ora della modifica del valore nel campo MySQL 0
G Individuare tag con php PHP 3
M Come individuare i siti che indirizzano utenti sul mio sito? SEO e Posizionamento 1
R individuare quantità mem ram Hardware 2
N Conflitto di indirizzi IP: individuare i responsabili Hardware 0
D rotella di caricamento che si toglie quando parte il download Ajax 0
L Rendere una parte trasparente Photoshop 3
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
M Mostrare testo (o parte di esso) in base a utente PHP 0
R Piacere di far parte di questa community Presentati al Forum 0
C Refresh parte di codice pagina php PHP 6
M "Principiante photoshop" Eliminazione di una parte di una foto e riempimento "a specchio" Photoshop 4
C Inserire dati tabella leggendo parte di altra tabella con php PHP 13
B Mysql servizio non parte MySQL 0
F includere parte html in index.php PHP 5
maurogiarrizzo È un piacere far parte di questo sito Presentati al Forum 1
ecosito [Wordpress] La barra del menù mi nasconde la parte alta delle pagine WordPress 0
S Aiuto!!!parte del form sparisce PHP 10
A caricare file PHP con Load cambiandone parte del contenuto jQuery 1
F [PRESTAHOP] Come posso creare questa parte del sito? HTML e CSS 7
P mp3 che parte all'avvio del sito in muse cc Webdesign e Grafica 1
pup3770 Puntatore mouse utilizzabile solo in una parte HTML e CSS 2
otto9due Un consiglio teorico e pratico su come sviluppare una parte di un blog PHP 18
L Modo per nascondere una parte variabile di una stringa PHP 0
M sostituire parte di URL con espressioni regolari PHP PHP 8
matteoraggi Controllare le vendite con Analytics e condividerne uan parte con altri Google Analytics 0
A Isolare parte di una stringa PHP 1
A riconoscimento sito da parte di google WordPress 6
K Aggiornare solo una parte di Layout Sviluppo app per Android 0
I Parte di una registrazione con ajax Javascript 1
A consiglio uso jquery php per mostrare parte di un form PHP 6
A consiglio uso jquery per mostrare parte di un form jQuery 0
W Da dove si parte a creare una App?? Sviluppo app per Android 2
Gozer Abbinare un CSS solo a una parte di codice HTML e CSS 2
F problema migrazione sito joomla ad altro provider - non parte configurazione Joomla 3
H Prendere una parte dall'URL PHP 5
G Con Photoshop come faccio a ritagliare un immagine irregolare e quindi non vedere più la parte ester Photoshop 3
M ritagliare una parte dell'immagine con le librerie gd PHP 0
M Approvazione dell'app da parte di apple? Sviluppo app per iOS 1
D prendere parte di testo da un sito .NET Framework 2
T Esportare una parte dei prodotti inseriti Magento 0
A Visualizzare albero DOM completo oppure Visualizzare Nodi che fanno parte di una Selezione Javascript 6
flavioweb Ultima scansione del sito da parte di google SEO e Posizionamento 2
B Parte di codice PHP 2
asevenx auto-incremento id che parte da valore sbagliato MySQL 3

Discussioni simili