Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/11/2014, 12:25
Avatar de rogertm
rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Pregunta Recorrer un array dentro de un foreach

Hola por aquí, tengo el siguiente problema. Tengo una función que me devuelve de la base de datos un array con una lista de usuarios que inicialmente tienen en su estado el status de Pendiente (pending), ahora, lo que quiero es que el encargado de estos usuarios les pueda cambiar el estado a Aprovado, Desaprovado o Pendiente, dependiendo del estado anterior.

Los datos de los usuarios que quiero cambiar los guardo en $request_users, supongo que el error está en el foreach dentro del foreach, pero ahora lo que sucede es que se actualiza solo el último elemento del array que viene por $_GET, y necesito que se actualizen todos...

Código PHP:
Ver original
  1. // Algo así es lo que tengo de la Base de Datos
  2. $notes = array(
  3.     'user_1'    => array(
  4.         'user'        => 1,
  5.         'status'    => 'pending',
  6.     ),
  7.     'user_2'    => array(
  8.         'user'        => 2,
  9.         'status'    => 'pending',
  10.     ),
  11.     'user_3'    => array(
  12.         'user'        => 3,
  13.         'status'    => 'pending',
  14.     ),
  15.     'user_4'    => array(
  16.         'user'        => 4,
  17.         'status'    => 'pending',
  18.     ),
  19.     'user_5'    => array(
  20.         'user'        => 5,
  21.         'status'    => 'pending',
  22.     ),
  23. );
  24.  
  25. $status         = ( isset( $_REQUEST['status'] ) ) ? $_REQUEST['status'] : null;
  26. $updated_users     = array();
  27. $request_users    = array();
  28. foreach ( $_REQUEST['user'] as $single_user ) :
  29.     array_push( $request_users, $single_user );
  30. endforeach;
  31. foreach ( $notes as $key => $value ) :
  32.     foreach ( $request_users as $single_user ) :
  33.         if ( $value['user'] == $single_user ) :
  34.             if ( $status == 'approved' || $status == 'pending' ) :
  35.                 $update_user = array(
  36.                     $key     => array(
  37.                         'user'        => $single_user,
  38.                         'status'    => $status,
  39.                     ),
  40.                 );
  41.             elseif ( $status == 'disapprove' ) :
  42.                 $update_user = array();
  43.             endif;
  44.         else :
  45.             $update_user = array(
  46.                 $key    => array(
  47.                     'user'        => $value['user'],
  48.                     'status'    => $value['status'],
  49.                 ),
  50.             );
  51.         endif;
  52.     endforeach;
  53.         $updated_users = array_merge( $updated_users, array_slice( $update_user, -1 ) );
  54. endforeach;

Como siempre agradezco cualquier ayuda que me puedan brindar.

Saludos!
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose