• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Php Woocommerce Nie mogę złączyć tablic

Object Storage Arubacloud
0 głosów
141 wizyt
pytanie zadane 28 września 2020 w PHP przez Aleksander Kowalski Obywatel (1,510 p.)

Hej

Od paru dni próbuje rozwiązać problem ze złączeniem tablic w jedną aby móc później za enkodować w jsonie dane.

Muszę z modułu woocommerce zamówień wyciągnąć dane i je sformatować.Wieć wpisuje je do tablicy   i działam na niej ale przy pętli foreach zamiast tworzyć z indeksem większą to tworzy mniejsze pojedyncze.

function get_all_order_id()
{
    $args = array(
        'limit'           => -1,
        'return'          => 'ids',
        'date_completed'  => '2018-10-01...'.date('Y-m-d', strtotime(date("Y-m-d") . ' +2 day')).'',
        'status'          => 'completed'
    );

    $query = new WC_Order_Query( $args );
    $orders = $query->get_orders();
    $i = 0 ;

    foreach( $orders as $order_id ) 
    {
        get_order_details($order_id);
    }
}

function get_order_details($order_id)
{
    $order = wc_get_order( $order_id );
    $items = $order->get_items();
    $order_meta = get_post_meta($order_id);
    $c_order = [];

    foreach ( $items as $item_id => $item_data ) 
    {
        $c_order[] = [
            // ...some formatted data
        ];   
    }
    finaly_array($c_order);
}

function finaly_array($data)
{
    $finaly = [];
    
    foreach ($data as $key ) 
    {   
        $finaly[] = [
            // ...some formatted data
        ];
    }
       
    wp_send_json($finaly);
}

Aktualny efekt wywołania kodu:

array(6) {
...
}
array(6) {
 ...
}

Co chcę osiągnąc:

array {
 [0]array(6) {
  ...
}
[1]array(6) {
  ...
}
[2]array(6) {
  ...
}
}

Próbowałem za pomocą rekurencji ale tylko wpisuje mi indeks do tablicy.

1 odpowiedź

0 głosów
odpowiedź 29 września 2020 przez Meyton Początkujący (320 p.)

Stoi coś na przeszkodzie, żeby wynik ($finaly) wrzucić w kolejną tablicę?

Do wp_send_json możesz sobie przygotować dużo bardziej rozbudowaną strukturę, np:

<?php
 
$finally = []; 

// tutaj Twój foreach

$return = array(
    'items' => $finally,
    'message' => 'success'
);
 
wp_send_json($return);

Wtedy, w parametrze items będziesz miał dokładnie tę strukturę, o którą Ci chodzi.

komentarz 29 września 2020 przez Aleksander Kowalski Obywatel (1,510 p.)

Też tego próbowałem i efekt był taki:

array(2) {
  ["items"]=>
  array(6) {
           dane
  }
  ["message"]=>
  string(7) "success"
}
array(2) {
  ["items"]=>
  array(6) {
          dane
  }
  ["message"]=>
  string(7) "success"
}

Zamiast includować tablice w tablicy tworzy cały czas nowe czego nie rozumiem w logice woo

Podobne pytania

0 głosów
0 odpowiedzi 742 wizyt
pytanie zadane 20 czerwca 2017 w PHP przez paciek Początkujący (480 p.)
0 głosów
1 odpowiedź 833 wizyt
pytanie zadane 7 marca 2017 w PHP przez spyniel Nowicjusz (240 p.)
0 głosów
0 odpowiedzi 165 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...