Y si se trata de optimizar... y para regresar al origen del tema, el array_diff sí te puede
ser útil en este caso. El problema con array_diff() es que sólo sirve para una dimensión. O sea
que una alternativa puede ser crear arrays de una sola dimensión. Mi alternativa es la siguiente:
Código PHP:
<?php
open();
$query = "SELECT coches.matricula, coches.aparcamiento FROM coches WHERE (aparcamiento = '1')";
$result = mysql_query($query) or die(mysql_error());
?>
<table border=1 cellspacing=0 cellpadding=4>
<tr>
<td>Matricula</a></td>
<td>Aparcamiento</a></td>
</tr>
<?
while($vehiculo = mysql_fetch_array($result)){
$matricula[]=$vehiculo['matricula'];//Acá está el cambio
$aparcamiento[]=$vehiculo['aparcamiento'];//Acá está el cambio
?>
<tr>
<td><? =$vehiculo['matricula']?></td>
<td><? =$vehiculo['aparcamiento']?></td>
</tr>
<? }?>
</table>
<?php
open();
$query = "SELECT reserva.matricula, coches.aparcamiento FROM coches INNER JOIN reserva ON
(coches.matricula = reserva.matricula) WHERE (fecha = '2003-12-30') AND (aparcamiento = '1')";
$result = mysql_query($query) or die(mysql_error());
?>
<table border=1 cellspacing=0 cellpadding=4>
<tr>
<td>Matricula</a></td>
<td>Aparcamiento</a></td>
</tr>
<? while($vehiculo2 = mysql_fetch_array($result)){
$matricula2[]=$vehiculo2['matricula'];//Acá está el cambio
$aparcamiento2[]=$vehiculo2['aparcamiento'];//Acá está el cambio
?>
<tr>
<td><? =$vehiculo2['matricula']?></td>
<td><? =$vehiculo2['aparcamiento']?></td>
</tr>
<? }?>
</table>
<?php
//O sea que ahora los arrays son de una dimensión y ya se puede utilizar array_diff()
//Así te ahorras hacerlo "a mano". Bastará con hacer:
$resultado=array_diff($matricula2, $matricula);
?>
<table border=1 cellspacing=0 cellpadding=4>
<tr>
<td>Matricula</td>
</tr>
<? foreach($resultado as $resultado2) { ?>
<tr>
<td><? =$resultado2?></td>
</tr>
<? }?>
</table>
<? }?>
</body>
</html>
Saludos