Как мне справиться с этим? - PullRequest
0 голосов
/ 04 июля 2019

Давайте посмотрим код, чтобы объяснить лучше: Я сделал запрос к WS, как показано ниже:

        $idERP = 1;
        $grupoEcota = new \SoapClient($url);
        $paramExtrato = array(
            'sGrupo' => $request->sGrupo,
            'iCota' => $request->iCota,
            'iIdERP' => $idERP,
        );
        $responseExtrato = $grupoEcota->ROS_ExtratoContaCorrente($paramExtrato);
        $grupoEcota = $responseExtrato->ExtratoContaCorrente;

Я получаю ответ от ведьмы WS, которая выглядит так от dd (die and dump):


$dados[] = $grupoEcota->{'PARCELAS-PAGAS'};
        dd($dados);

array:1 [▼
  0 => {#784 ▼
    +"PARCELA-PAGA": array:21 [▼
      0 => {#783 ▼
        +"NUMERO-PARCELA": 48
        +"DATA-VENCIMENTO": "20170818"
        +"DATA-PAGAMENTO": "20170919"
        +"VALOR-PARCELA": 580.28
        +"HITORICO-PARCELA": ""
        +"PERC-PAGO": 3.491
      }
      1 => {#771 ▶}
      2 => {#781 ▶}
      3 => {#780 ▶}
      4 => {#779 ▶}
      5 => {#778 ▶}
      6 => {#777 ▶}
      7 => {#776 ▶}
      8 => {#775 ▶}
      9 => {#774 ▶}
      10 => {#773 ▶}
      11 => {#772 ▶}
      12 => {#757 ▶}
      13 => {#770 ▶}
      14 => {#769 ▶}
      15 => {#768 ▶}
      16 => {#767 ▶}
      17 => {#766 ▶}
      18 => {#765 ▶}
      19 => {#764 ▶}
      20 => {#763 ▶}
    ]
  }
]

Мне нужно получить только первый элемент "DATA-VENCIMENTO": "20170818". Как мне это сделать, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Получил помощь друга:

$firstRecord = collect($dados[0]->{'PARCELA-PAGA'})->firstWhere('DATA-VENCIMENTO', '20170818');

dd($firstRecord);

тогда ...

{#783 ▼
  +"NUMERO-PARCELA": 48
  +"DATA-VENCIMENTO": "20170818"
  +"DATA-PAGAMENTO": "20170919"
  +"VALOR-PARCELA": 580.28
  +"HITORICO-PARCELA": ""
  +"PERC-PAGO": 3.491
}

И я закончил делать:

dd($firstRecord->{'DATA-VENCIMENTO'});

Я получил «20170818», это значение, которое я изучаю. Я думаю, что это решает проблему! Спасибо, чувак, ты мужчина!

0 голосов
/ 04 июля 2019

Во-первых, вы имеете дело с массивом, давайте выберем этот первый элемент (я предполагаю, что будет только один элемент).

$data= $data[0];

Теперь у нас есть массив значений ключей, теперь мы можем извлечь PARCELA-PAGA.

$parcels = $data{'PARCELA-PAGA'];

Несколько объектов в массиве - это следующий уровень, это означает, что в каждом объекте есть данные, поэтому я бы использовал array_pluck для вывода этих элементов.

$vencimento = array_pluck($parcels, 'DATA-VENCIMENTO');

Если вы не заботитесь о нескольких полях данных, вы можете просто взять первый элемент. Будьте осторожны, эти данные не массив, а объект.

$vencimento = $parcels[0]->DATA-VENCIMENTO;

Что должно привести к тому, что результат будет выглядеть следующим образом.

[""20170919"", "20171019", ...]
...