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
$cols=['*','id_socio,socio,apellidos,edad,colegio','teléfono'][1];
if (isset($args[1]))
if (strpos($_SERVER['QUERY_STRING'],'edad')){
if ($args[1]=='asc') $query="SELECT $cols FROM $cont ORDER BY $args[0] ASC";
if ($args[1]=='desc') $query="SELECT $cols FROM $cont ORDER BY $args[0] DESC";
}else{
if ($args[1]=='desc') $query="SELECT $cols FROM $cont ORDER BY $args[0] ASC";
if ($args[1]=='asc') $query="SELECT $cols FROM $cont ORDER BY $args[0] DESC";
}
else $query="SELECT $cols FROM $cont";
?>
<?php #SHOW COLUMNS FROM $cont ?>
<?php #strncmp($value,'id_',3)&&print(str_replace('_',' ',ucfirst($value))).'<br>'; ?>
<table class="table table-striped table-dark">
<thead class="">
<?php foreach (mysqli_query($cnx,"SELECT $cols FROM $cont LIMIT 1") as $table): ?>
<tr>
<?php foreach (array_keys($table) as $value): ?>
<th>
<a href="<?= S.$cont.S.$metd.S.$value.S.(isset($args[1])&&$args[1]=='desc'?'asc':'desc') ?>">
<?php strncmp($value,'id_',3)&&print(str_replace(['_','Socio'],[' ','Nombre'],ucfirst($value))) ?>
</a>
</th>
<?php endforeach ?>
</tr>
<?php endforeach ?>
</thead>
<tbody>
<?php foreach (mysqli_query($cnx,$query) as $table): ?>
<tr>
<?php foreach ($table as $key => $value): ?>
<td>
<?php if (in_array($key,['socio'])): ?>
<a href="<?= S.$cont.S.'ver'.S.str_replace(' ','_',$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 ?>
<tr></tr>
</tbody>
</table>