
Originariamente inviata da
Infocurci
Ciao,
ma puoi trasformare il file excel in un csv?
In questo caso ho creato questa soluzione che farebbe al caso tuo, compresa di test di debug alla fine:
Codice PHP:
<?php
$elenco = array();
$contaRighe = 0;
if (($handle = fopen('griglia.csv', 'r')) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$contaRighe++;
if($contaRighe == 1){//salta la prima riga perché è un'intestazione, comunque la memorizza in un array per usare le sigle successivamente
$elencoSigle = $data;
continue;
}
if(!isset($elenco[$data[0]])){
$elenco[$data[0]] = array();
}
$num = count($data);
for ($c=1; $c<$num; $c++) {
if(!empty($data[$c]) && $data[$c] == 1){
$elenco[$data[0]][] = $elencoSigle[$c];
//queste tre righe rendono l'indice disponibile anche nella matrice opposta; sono superflue ma agevolano il controllo successivo
if(!isset($elencoSigle[$data[$c]])){
$elenco[$elencoSigle[$c]] = array();
}
$elenco[$elencoSigle[$c]][] = $data[0];
}
}
}
}
//TEST VARI
echo '<pre>';
print_r($elenco);
echo '</pre>';
echo 'test per 1a-1d:<br />';
if(in_array('1a',$elenco['1d'])){
echo 'Positivo';
}
else{
echo 'negativo';
}
echo '<br /> <hr /> <br />';
echo 'test per 1c-2a:<br/>';
if(in_array('1c',$elenco['2a'])){
echo 'Positivo';
}
else{
echo 'negativo';
}
echo '<br /> <hr /> <br />';
echo 'test per 1b-2c:<br />';
if(in_array('2c',$elenco['1b'])){
echo 'Positivo';
}
else{
echo 'negativo';
}
echo '<br /> <hr /> <br />';
ho chiamato il file 'griglia.csv' e ho fatto un test, mi funziona bene.
Se non puoi trasformalo in csv puoi comunque adattare lo script.
Ho fatto in modo che funzioni in tutte e due le direzioni: se devi verificare 2c-1b, puoi fare
Codice PHP:
if(in_array('2c',$elenco['1b'])){
oppure
Codice PHP:
if(in_array('1b',$elenco['2c'])){
è indifferente.


