PHP - obtener valor de array en una variable

 
Vista:

obtener valor de array en una variable

Publicado por ariel (4 intervenciones) el 19/11/2019 16:54:14
Buenas, como estan?

Espero me puedan ayudar pero he intentado varias alternativas pero aún no logro solucionar el problema que tengo.

Tengo una función y necesito rescatar un valor determinado y cargarlo en una variable para poder utilizarlo luego fuera de la función. Esto es en PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public function getInfo($bookable, $booking, $reservation, $paymentGateway)
{
$info = [
     'type' => Entities::APPOINTMENT,
     'serviceId' => $bookable->getId()->getValue(),
     'providerId' => $reservation->getProviderId()->getValue(),
     'locationId' => $reservation->getLocationId() ? $reservation->getLocationId()->getValue() : null,
     'name' => $bookable->getName()->getValue(),
     'couponId' => $booking->getCoupon() ? $booking->getCoupon()->getId()->getValue() : '',
     'couponCode' => $booking->getCoupon() ? $booking->getCoupon()->getCode()->getValue() : '',
     'bookingStart' => $reservation->getBookingStart()->getValue()->format('Y-m-d H:i'),
         'dateTimeValues' => [
                [
                 'start' => $reservation->getBookingStart()->getValue()->format('Y-m-d H:i'),
                 'end' => '',
                ]
      ],
           'notifyParticipants' => $reservation->isNotifyParticipants(),
 
            'bookings' => [
                 [
                     'customerId' => $booking->getCustomer()->getId() ?
                      $booking->getCustomer()->getId()->getValue() : null,
                             'customer' => [
                                  'email' => $booking->getCustomer()->getEmail()->getValue(),

Recorté el código, pero la idea es obtener el campo 'email" meterlo en una variable dentro de la función y luego usarlo afuera.

Perdonen tal vez lo tonta de la pregunta pero aún no lo resuelvo. Para aclarar un poco mas, esta función se encuentra dentro de una clase.

Como debería declararse la variable? donde? como se debe utilizar afuera de la función? Espero me puedan ayudar, desde ya muchas gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

obtener valor de array en una variable

Publicado por joel (1269 intervenciones) el 19/11/2019 17:04:41
Hola Ariel, la función getInfo() que devuelve?

Dependiendo de lo que devuelva, podrás o no devolver el valor desde la función. Si no se puede devolver, lo que puedes hacer, es definir una variable global fuera de la función y llamarla así:

1
2
3
4
5
6
7
8
$mivar="";
 
function getInfo(....) {
    global $mivar;
    $mivar=$booking->getCustomer()->getEmail()->getValue();
 
    $info=[.....];
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener valor de array en una variable

Publicado por ariel (4 intervenciones) el 19/11/2019 17:14:37
Gracias por responder!
Al final de la función hay un return $info;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

obtener valor de array en una variable

Publicado por joel (1269 intervenciones) el 19/11/2019 19:52:51
Pues creo que puedes obtener el resultado así de lo que devuelve la función:

1
echo $info['bookings']['customerId']['customer']['email'];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener valor de array en una variable

Publicado por Ariel Imlauer (4 intervenciones) el 19/11/2019 21:33:16
bien entendido!
pero sigo sin poder usar la variable $mivar fuera de la función, que siempre me llega vacio. En la linea 3 y 4 está lo que me dijiste que agregara, esta bien asi? Cabe aclara que esta función está dentro de una clase.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public function getInfo($bookable, $booking, $reservation, $paymentGateway)
    {
		global $mivar;
		$mivar=$info['bookings']['customerId']['customer']['phone'];
 
		$info = [
                         'type'               => Entities::APPOINTMENT,
                        'serviceId'          => $bookable->getId()->getValue(),
                        'providerId'         => $reservation->getProviderId()->getValue(),
            '            locationId'         => $reservation->getLocationId() ? $reservation->getLocationId()->getValue() : null,
                       ' name'               => $bookable->getName()->getValue(),
                        'couponId'           => $booking->getCoupon() ? $booking->getCoupon()->getId()->getValue() : '',
                        'couponCode'         => $booking->getCoupon() ? $booking->getCoupon()->getCode()->getValue() : '',
                        'bookingStart'       => $reservation->getBookingStart()->getValue()->format('Y-m-d H:i'),
                          'dateTimeValues'     => [
                                    [
                                          'start' => $reservation->getBookingStart()->getValue()->format('Y-m-d H:i'),
                                          'end'   => '',
                                    ]
                               ],
                          'notifyParticipants' => $reservation->isNotifyParticipants(),
                                  'bookings'           => [
                                       [
                                               'customerId'   => $booking->getCustomer()->getId() ?
                                               $booking->getCustomer()->getId()->getValue() : null,
                                               'customer'     => [
                                                             'email'      => $booking->getCustomer()->getEmail()->getValue(),
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

obtener valor de array en una variable

Publicado por joel (1269 intervenciones) el 20/11/2019 08:08:53
Ariel, cuando te indique como obtener el valor de $info, te lo puse para obtenerlo donde devuelve el valor la función, no dentro de la misma... para hacerlo dentro de la misma tienes que utilizas la primera manera que te comente.

Ademas, no puedes utilizar una variable antes de definir-la.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

obtener valor de array en una variable

Publicado por Ariel Imlauer (4 intervenciones) el 21/11/2019 15:58:06
te agradezco mucho tus respuestas y tu tiempo. Esto que me decis igualmente funciona para lo que te decia antes de que esta función está dentro de una clase?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

obtener valor de array en una variable

Publicado por joel (1269 intervenciones) el 21/11/2019 18:40:50
Si si, funciona igualmente, ya sea una función o un método de una clase.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar