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.

