Foros del Web » Programando para Internet » PHP »

Resta de arrays

Estas en el tema de Resta de arrays en el foro de PHP en Foros del Web. Hola buenas, siento por ser tan pesado hoy, pero hay una cosa que no consigo q funcione !!! En la base de datos tengo : ...
  #1 (permalink)  
Antiguo 26/07/2011, 08:51
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Resta de arrays

Hola buenas, siento por ser tan pesado hoy, pero hay una cosa que no consigo q funcione !!!

En la base de datos tengo :
id_categoria
categoria
los saco todos en la siguiente consulta :

Código PHP:
$sqlSec21 ="SELECT categoria FROM categorias";
$resSec21 =$db->GetAll($sqlSec21); 
y tengo un array que lo recojo por POST, que quiero restarle...

entonces hago lo siguiente :

Código PHP:
$categoria1 $_POST['categoria'];
$categoria2 $resSec21;

$result array_diff($categoria2$categoria1); 
Pero me salen los mismos datos de la base de datos, es decir, no me lo hace...

Un saludo!
  #2 (permalink)  
Antiguo 26/07/2011, 08:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Resta de arrays

¿leíste que hace la función en la documentación oficial?: http://php.net/manual/es/function.array-diff.php

Retorna un array conteniendo todas las entradas del array1 que no están presentes en ninguna de las otras matrices.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 26/07/2011, 09:07
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Resta de arrays

para restar valores de las matrices primero suma todos los elementos del array y resta básica.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $arr1 = array(10,20, 10);
  4. $arr2 = array(7,21, 10);
  5.  
  6. $resta = array_sum($arr1) - array_sum($arr2);
  7.  
  8. echo $resta;
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 26/07/2011, 09:08
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Resta de arrays

Y como podria restar los valores de los dos arrays y que me devuelva un array con todos los que no estan en el array 1 ??

EDIT : Lo que quiero hacer es comparar los dos arrays. Tengo uno general que tiene por ejmplo (lapiz, boli, estuche ) y en el otro tengo ( lapiz) como obtengo el array (boli, estuche ) ???
  #5 (permalink)  
Antiguo 26/07/2011, 09:16
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Resta de arrays

Eso ya es otra cosa... Hay que explicar bien

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo 'Editado';
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 26/07/2011, 09:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Resta de arrays

Cita:
Iniciado por Yurisimo Ver Mensaje
Y como podria restar los valores de los dos arrays y que me devuelva un array con todos los que no estan en el array 1 ??

EDIT : Lo que quiero hacer es comparar los dos arrays. Tengo uno general que tiene por ejmplo (lapiz, boli, estuche ) y en el otro tengo ( lapiz) como obtengo el array (boli, estuche ) ???
invierte entonces los array en array_diff, repito: ¿leíste e interpretaste la documentación?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 26/07/2011, 09:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Resta de arrays

Código PHP:
Ver original
  1. <?php
  2.  
  3. $arr1 = array('Casa', 'Lapiz', 'Color');
  4. $arr2 = array('Lapiz');
  5.  
  6. $result = array_diff($arr1, $arr2);
  7.  
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 26/07/2011, 09:51
 
Fecha de Ingreso: julio-2009
Mensajes: 111
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Resta de arrays

He estado leyendo mas sobre los arrays, en el manual de PHP. Supuestamente hago lo que pone alli, pero creo que lo que me esta fallando es la comparacion entre lo que recojo en el $_POST[''] y la base de datos :S

He hecho los prints de cada array, y el de la base de datos es diferente...


Código PHP:
Array ( [0] => Array ( [0] => pl&#65533;stico [categoria] => pl�stico ) [1] => Array ( [0] => madera [categoria] => madera ) [2] => Array ( [0] => metal [categoria] => metal ) [3] => Array ( [0] => vidrio [categoria] => vidrio ) [4] => Array ( [0] => fibra natural [categoria] => fibra natural ) [5] => Array ( [0] => papel/cart�n [categoria] => papel/cart�n ) [6] => Array ( [0] => cer�mica [categoria] => cer�mica ) [7] => Array ( [0] => tela [categoria] => tela ) )    $result

Array ( [0] => plástico [1] => fibra natural [2] => cerámica )   $_POST[]

Array ( [
0] => Array ( [0] => pl&#65533;stico [categoria] => pl�stico ) [1] => Array ( [0] => madera [categoria] => madera ) [2] => Array ( [0] => metal [categoria] => metal ) [3] => Array ( [0] => vidrio [categoria] => vidrio ) [4] => Array ( [0] => fibra natural [categoria] => fibra natural ) [5] => Array ( [0] => papel/cart�n [categoria] => papel/cart�n ) [6] => Array ( [0] => cer�mica [categoria] => cer�mica ) [7] => Array ( [0] => tela [categoria] => tela ) ) base de datos 

Etiquetas: arrays, resta, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:05.