Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/12/2009, 13:40
equality_211085
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 5
comparacion de arreglos segun criterio

Hola a todos en foros del web

tengo el siguiente array

$array_campos_tFicha = array('100-autorpersonal', '090-clasificacionlocal', '020-isbn', '043-lugarpub', '041-idiomapub', '022-issn', '040-fuentedecatalogacion', '045-cronologicofechahora', '050-clasificacionLC', '082-clasificacionDewey', '110-autorcorporativo', '111-autorporasambleaconferenciacongreso', '130-asientoportitulouniforme_tituloconvencional', '210-tituloabreviado', '222-tituloclave', '240-titulouniforme', '243-titulouniformecolectivo', '245-titulo_mencionderesponsabilidad', '246-variantedeltitulo', '250-edicion_menciondeedicion', '306-duraciondelmaterial', '310-frecuenciaactualdepublicacion', '362-fechadepublicacion_designaciondesecuencia', '400-notadeseriebajoautorpersonal', '410-notadeseriebajoautorcorporativo', '411-notadeseriebajoautorporasamblea', '440-serie_mencionderesponsabilidad', '490-notadeserie_menciondeserie', '500-notasgenerales', '501-notasdecon', '502-notadetesis', '503-notadehistorialbibliografico', '504-notadebibliografia', '505-notadecontenido', '506-notaderestriccionesdeacceso', '508-notasdecredito', '510-notadereferencia_cita', '511-notasdeelenco', '518-notassobrefecha_horaylugardegrabacion', '520-notaderesumen', '521-notadeaudiencia', '530-notasobreotrosformatosdisponibles', '534-notadeversionoriginal', '538-notadedetallesdelsistema', '546-notadeidioma', '583-acciondeconservacion', '590-notadecatalogacionpersonalizada', '600-encabezamientosbajoautorpersonal', '610-encabezamientosbajoautorcorporativo', '611-encabezamientosbajoautorporasambleaconferenciacong resoetc', '630-encabezamientosbajotitulouniforme', '650-encabezamientosbajotemasgenerales', '651-encabezamientosbajonombresgeograficos', '700-asientossecundariosbajoautorpersonal', '710-asientossecundariosbajoautorcorporativo', '711-asientossecundariosbajoautorporasambleaconferencia congresoetc', '730-asientossecundariosbajotitulouniforme', '740-asientossecundariodetitulo', '770-fechadefasciculosnorecibidos', '760-fechadeinicio_terminacion', '780-acervo', '856-ligaarecursoselectronicos');

El caso es que deseo comparar este array con otro que esta formado por un resultado de una vista (postgresql), dejo las tablas con sus datos y la vista para que me ayuden mas exactamente:

enlace para script de tablas

Cita:
Esta es la vista

CREATE OR REPLACE VIEW "public"."marcseleccionados" (
idtipomaterial,
codmarc,
titulomarc,
idmarc)
AS
SELECT tipomaterial.idtipomaterial, marc.codmarc, marc.titulomarc, marc.idmarc
FROM marc, tipomaterial, marcmaterial
WHERE ((marc.idmarc = marcmaterial.idmarc) AND (tipomaterial.idtipomaterial =
marcmaterial.idtipomaterial));
pero solamente comparar los primeros 3 caracteres de cada elemento del array $array_campos_tFicha contra mi array que proviene de la vista en postgresql

tengo nocion de que podria ser mas o menos con un for mas o menos asi, cabe destcar que $campos es mi array del resultado de la vista (tambien me gustaria saber como retorno todas las filas para convertirla en el array $campos, la consulta es sobre la vista anterior y seria 'select * from marcseleccionados" where idtipomaterial=1', a partir de esta consulta se formaria mi array de la bd)

Cita:
for($i=0;$i<count($array_campos_tFicha);$i++){
if(in_array($array_campos_tFicha[i],$campos)){
/* aca lo que quiero que haga es crear un nuevo array donde contendra los elementos que coinciden, pero la limitante que deseo es que cada elemento del array $array_campos_tFicha solo tome a partir del 4to caracter hasta el final */
}
}
Es decir, seria algo como asi, si el elemento 100-autorpersonal coincide seria:

Cita:
$array_final[] = 'autorpersonal'

Si el elemento 090-clasificacionlocal coincide se agregaria tambien al nuevo array

$array_final[] = 'clasificacionlocal'
Espero su ayuda, muchas gracias