Come conoscere la posizione di numeri in un array escludendo i doppioni

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao a tutti.
Come da titolo della discussione, in un codice PHP ho un array contenente molti numeri che si ripetono (vanno da 1 a 12 ma non comincia necessariamente da 1). Ho la necessità di conoscere la posizione di ogni primo numero senza tenere conto dei doppioni.
Faccio un esempio:
PHP:
$array = array(10,10,10,10,10,10,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,12,1,1,1,1.....);
Di questo array devo conoscere la posizione ogni primo numero, quindi la posizione del primo 10, poi la posizione del primo 11, poi la posizione del primo 12, poi la posizione del primo 1 ecc.
Ho trovato la funzione "array_search()" ma riesco ad estrarre soltanto la posizione del primo 10,11,12, ecc. ma non mi tiene conto del fatto che i numeri 10,11,12 successivamente si ripetono.
Come faccio per tutta la serie?
Ciao, grazie mille.
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Prova così!
PHP:
$pos=[];

$array = array(10,10,10,10,10,10,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,12,1,1,1,1.....);
foreach($array as $k=>$v)
    (!isset($pos[$v]))?$pos[$v]=$k:null;
Pos contiene nelle chivi il numero trovato, mentre il valore contiene la posizione...
 

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao macus_adi, grazie mille per la risposta.
Ho provato il tuo codice ma, purtroppo, funziona in parte. Testandolo ottengo questo risultato:
PHP:
Array
(
    [10] => 0
    [11] => 6
    [12] => 13
    [1] => 22
    [2] => 28
    [3] => 34
    [4] => 39
    [5] => 42
    [6] => 47
    [7] => 53
    [8] => 59
    [9] => 64
)
Da come puoi vedere l'array che si ottiene è corretto ma si ferma a 9 e non continua la serie.
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Di questo array devo conoscere la posizione ogni primo numero, quindi la posizione del primo 10, poi la posizione del primo 11, poi la posizione del primo 12, poi la posizione del primo 1 ecc.
Per questa richiesta del primo post, dovrebbe funzionare correttamente.....

Da come puoi vedere l'array che si ottiene è corretto ma si ferma a 9 e non continua la serie.

Non ho capito cosa ti serve allora, chiarisci il concetto perchè da come hai scritto VUOI LA POSIZIONE DI OGNI PRIMO NUMERO, ed il codice fa esattamente questo....
Spigati meglio!
Anche perche:
1). Ho la necessità di conoscere la posizione di ogni primo numero senza tenere conto dei doppioni.
Non è coerente con quanto replicato nel post successivo

Ho trovato la funzione "array_search()" ma riesco ad estrarre soltanto la posizione del primo 10,11,12, ecc. ma non mi tiene conto del fatto che i numeri 10,11,12 successivamente si ripetono.
In che senso? mi faresti l'esempio di output che vorresti?

Intanto prova questo e vedi se sono riuscito a centrare la tua richiesta
PHP:
$array = array(10,10,10,10,10,10,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,
   1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,
   9,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,12,1,1,1,1,9,9,9,10,10,10,10,10,11,11,12,12,12,12,12,10,10,10,10,1,1,1);
$posix=[];
foreach ($array as $k=>$v)
   ($k==0)?$posix[$k]=$v:($array[$k-1]!=$v && next($array) && $array[$k+1]==$v)?$posix[$k]=$v:null;

print_r($posix);
Il risultato è il seguente:
Array
(
[0] => 10
[6] => 11
[13] => 12
[22] => 1
[28] => 2
[34] => 3
[39] => 4
[42] => 5
[47] => 6
[53] => 7
[59] => 8
[64] => 9
[69] => 10
[73] => 11
[76] => 12
[81] => 1
[85] => 9
[88] => 10
[93] => 11
[95] => 12
[100] => 10
[104] => 1
)
Dove la chiave rappresenta la posizione !
 
Ultima modifica:

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao macus_adi, grazie mille per la risposta.
Innanzitutto voglio scusarmi se nel messaggio di apertura della discussione non sono riuscito a spiegarmi bene.
Detto questo, ho provato il tuo ultimo codice e funziona alla perfezione.
Grazie mille! :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
maxnegri Conoscere giorni della settimana fra due date con php PHP 2
zorro [PHP] Conoscere zona utente loggato PHP 2
felino Conoscere la data di pubblicazione di un sito web WordPress 1
I Far conoscere un sito SEO e Posizionamento 4
voldemort Per programmare Android bisogna conoscere Java? Sviluppo app per Android 1
max_400 Conoscere il Page Rank di un sito Discussioni Varie 3
A form: conoscere il valore delle opzioni selezionate PHP 4
A Vorrei farvi conoscere un sito Presenta il tuo Sito 0
A Fai conoscere la tua attività Presenta il tuo Sito 1
RedWolf Conoscere modifica campo tabella mySQL Database 1
L Avete un sito/forum/blog e volete farlo conoscere? SEO e Posizionamento 0
A conoscere ip,scherzo... Sicurezza e Virus 2
M inserire dei campi senza conoscere a priori il numero PHP 0
B VB6 Conoscere l'id di un Rs appena creato Programmazione 2
W conoscere l'id di una query PHP 3
F Vuoi Conoscere I Voti Gazzetta alle 8 della domenica e del lunedi? Presenta il tuo Sito 3
S Farsi conoscere Discussioni Varie 3
R Come far conoscere un sito all'estero SEO e Posizionamento 3
peppoweb Conoscere Debian: una guida Linux e Software 0
M Accordion menu e posizione div HTML e CSS 0
L Posizione a un popup Javascript 0
M POSIZIONE NEI RUSULTATI GOOGLE SEO e Posizionamento 1
M Posizione aperta programmatore JAVACARD Offerte e Richieste di Lavoro e/o Collaborazione 0
S [PHP] Ricercare Uno Specifico Carattere In Una Precisa Posizione PHP 3
L Salvare posizione maps Sviluppo app per Android 0
G [HTML] Variazione di posizione di un tag <a> a passaggio del mouse di un altro tag <a> HTML e CSS 12
A [Javascript] problemi con javascrip e posizione GPS html5 Javascript 6
A [Javascript] Problema visualizzazione posizione corrente su mappa Javascript 2
H Condivisione posizione Google Maps e navigazione automatica Sviluppo app per Android 0
M Div che sballano posizione al ridimensionamento HTML e CSS 2
M Ricercare uno specifico carattere in una precisa posizione PHP 5
A modificare posizione plug in almeno credo WordPress 3
C posizione in pagina Javascript 1
M Posizione div dialog NON al centro pagina jQuery 1
Akari Honoka html+css box posizione HTML e CSS 1
elpirata Pagina posizione Top dopo salvataggio form Javascript 0
mirko.dagata Stessa posizione SERP ma traffico diminuito SEO e Posizionamento 4
M posizione assoluta con xhtml5 HTML e CSS 2
A impostare la posizione iniziale di un blocco Javascript 0
D posizionare un' elemento in una posizione definita jQuery 5
J Posizione Sidebar Joomla 1
S Cambia la posizione con jQuery jQuery 1
G posizione singoli valori PHP 3
matteoraggi Badoo con android: come disabilitare il controllo di posizione? Smartphone e tablet 0
matteoraggi Badoo desktop: come disabilitare i lcontrollo automatico di posizione? Windows e Software 0
M Cambiare posizione menù Joomla (era: crare nuove posizioni) Joomla 1
G Come modificare la posizione dei sottomenù spry HTML e CSS 0
benfy85 cambiare posizione del menu a seconda della scelta dell'utente Javascript 0
L Posizione scrollbar Javascript 0
G Posizione per una write Javascript 0

Discussioni simili