Opino lo mismo pero estoy desconcertado:
Sacar no comunes con array_diff:
array_diff(['a','b',1,2],[1,2,3,4]):
print_r obtengo ['a','b',3,4]
mientras que con if obtengo ['a','b',1,2,3,4] ejecutandose siempre, me parece imposible porque no evaluo nada más en el if
No lo entiendo
Tambien he probado con los comunes con array_intersect:
array_intersect(['a','b',1,2],[1,2,3,4]), y me pasa lo mismo:
print_r obtengo [1,2]
mientras que con el if obtengo ['a','b',1,2,3,4]
En lugar de comparar 2 arrays, si me funciona comparar un array con una palabra, cosa que me desconcierta, no encuentro que podria estar haciendo mal
Código PHP:
IF y PRINT_R debuelve el mismo resultado esperado, pero no compara 2 array
in_array($key,['socio'])
Todo el código
Código HTML:
<?php foreach (mysqli_query($cnx,"id_socio,socio,apellidos,edad") as $table): ?>
<tr>
<?php foreach ($table as $key => $value): ?>
<td>
-------------> <?php if (array_diff($table,['socio','apellidos'])): ?>
<a href="<?= S.$cont.S.'ver'.S.$table['socio'].S.$table['apellidos'] ?>">
<?php if ($key=='edad'): ?>
<?=date_diff(date_create($value),date_create(date('Y-m-d')))->format('%y')?>
<?php else: ?>
<?=$value?>
<?php endif ?>
</a>
<?php else: ?>
<?php if ($key=='edad'): ?>
<?=date_diff(date_create($value),date_create(date('Y-m-d')))->format('%y')?>
<?php else: ?>
<?=$value?>
<?php endif ?>
<?php endif ?>
</td>
<?php endforeach ?>
</tr>
<?php endforeach ?>