Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2011, 10:04
jordi45
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 15 años, 6 meses
Puntos: 2
Comprara dos arrays y extraer las coincidencias

Tengo un carrito que se guardan los registros en un objeto dentro de una sesión.
Me interesa meter un array del id de las compras como un string (ya que puede ser una o varias) dentro de un campo llamado datos.

<? foreach ($_SESSION["ocarrito"]->array_id_prod as $key => $id)
{
echo "$id,";}?>
1,23,45,56, se guarda dentro de un campo como un string

Tengo los registros de los productos identificados con su id en otra tabla con su descripción quiero hacer una conulta comparando los id del string datos con los id de los productos.

lo tengo así

<? $fo = array();?>
<?
do {?>
<? $fo[]=$row_prod['id'];?>
<? } while ($row_prod=mysql_fetch_assoc($prod));?>

<? $fu = array();?>
<?
do {?>
<? $fu[]=substr($row_dat['datos'], 0,-1);?> => esto es para quitar la última coma
<? } while ($row_dat=mysql_fetch_assoc($dat));?>
<?php

Para meterles las comas dentro
$po=implode($fo,",");
$pu=implode($fu,",");

Esto sale:

2222,2231
2222,230,500,345,78,2,56,78,290
Coincide el 2222

<?

$A =array($po);
$B =array($pu);
$C = array_intersect($A,$B);
?>

<? foreach($C as $value)
{
echo $value;}?><br />


?>

No sale nada
pero si pongo

<?

$A =array(2222,2231);
$B =array(2222,230,500,345,78,2,56,78,290);
$C = array_intersect($A,$B);
?>

sale 2222