Tengo un problema que he logrado resolver pero creo que existe una forma más eficiente, o alguna función predefinida para hacerlo.
Yo tengo estos dos arrays:
$ar_totales[]['m_id']['m_titulo']
$ar_activos[]['m_id']['m_titulo']
En $ar_totales[] tengo 4 registros ($ar_totales[0], $ar_totales[1], $ar_totales[2]...) cada uno de los cuales tiene su propio "m_titulo" y "m_id".
En $ar_activos[] tengo solo algunos de los registros que existen $ar_totales... siempre trabajo con los mismos registros.
Yo deseo generar un nuevo array que contenga todos aquellos registros que están en $ar_totales y no están en $ar_activos. Este array será llamado $ar_pasivos[].
Ejemplo de cómo estarían cargados estos registros:
Código PHP:
    
// TOTALES
$ar_totales[0]['m_id'] = 1;
$ar_totales[0]['m_titulo'] = "SISTEMA";
$ar_totales[1]['m_id'] = 2;
$ar_totales[1]['m_titulo'] = "REDACCION";
$ar_totales[2]['m_id'] = 3;
$ar_totales[2]['m_titulo'] = "NEWSLETTER"; 
$ar_totales[3]['m_id'] = 4;
$ar_totales[3]['m_titulo'] = "ARCHIVOS";
 
 
// ACTIVOS
$ar_activos[0]['m_id'] = 2;
$ar_activos[0]['m_titulo'] = "REDACCION";
$ar_activos[1]['m_id'] = 4;
$ar_activos[1]['m_titulo'] = "ARCHIVOS"; 
    Asi logre generar el nuevo array que me diga CUALES de los registros que figuran en "$ar_totales" no figuran en "$ar_activos":
Código PHP:
    
$flag = 0;
$x = 0;
 
for ($i=0; $i < count($ar_totales); $i++) {
 
    for ($y=0; $y < count($ar_activos); $y++) {
 
        if ($ar_totales[$i]['m_id'] == $ar_activos[$y]['m_id']) {
            $flag = 0;
            break;
 
        } else {
 
            $flag = 1;
            continue;
        }
    }
 
    if ($flag == 1) {
        $ar_pasivos[$x]['m_id'] = $ar_totales[$i]['m_id'];
        $ar_pasivos[$x]['m_titulo'] = $ar_totales[$i]['m_titulo'];
        $x++;
        $flag = 0;
    }
} 
    ¿Creen que hay alguna forma más standard de hacer esto ó está bien como lo hice?
Desde ya, muchas gracias!
 
 


