I have this code:
$order = wc_get_order( 988613 );
$product_array = array();
$daty = array();
$counter = 1;
foreach ($order->get_items() as $item_key => $item ){
$daty_dostaw = $item->get_meta('Daty dostaw');
$product_id = $item->get_product_id();
$daty_dostaw_explode = explode(',',$daty_dostaw);
$daty[$counter]['product_id'] = $product_id;
foreach($daty_dostaw_explode as $key => $data){
$daty[$counter]['data'][] = $data;
}
$counter++;
}
When I print it it shows me this
Array
(
[1] => Array
(
[product_id] => 988012
[data] => Array
(
[0] => 13-08-2022
[1] => 25-08-2022
[2] => 30-08-2022
)
)
[2] => Array
(
[product_id] => 988087
[data] => Array
(
[0] => 25-08-2022
[1] => 31-08-2022
[2] => 30-09-2022
)
)
)
I want to combine an array that have the same dates to display like this:
Array
( [1] => Array
(
[product_id] => array(988012, 988087)
[data] => Array
(
[0] => 25-08-2022
)
)
[2] => Array
(
[product_id] => 988012
[data] => Array
(
[0] => 13-08-2022
[1] => 30-08-2022
)
)
[3] => Array
(
[product_id] => 988087
[data] => Array
(
[0] => 31-08-2022
[1] => 30-09-2022
)
)
)
I want to merge the array those with the same dates. I don't know how to explain it exactly, above I showed what I would like to achieve. I have already written thousands of lines of code using foreach and have not been able to achieve this :(
My Answer:
>get_items() as $item) {_$product_id = $item->get_product_id();_$product_name = $item->get_name();_$product_quantity = $item->get_quantity();_$product_price = $item->get_total();_$product_array[] = array( 'product_id' => $product_id, 'product_name' => $product_name, 'product_quantity' => $product_quantity, 'product_price' => $product_price );_}_foreach ($product_array as $product) {_$product_id = $product['product_id'];_$product_name = $product['product_name'];_$product_quantity = $product['product_quantity'];_$product_price = $product['product_price'];_if (array_key_exists($product_id, $daty)) {_$daty[$product_id]['product_quantity'] += $product_quantity;_$daty[$product_id]['product_price'] += $product_price;_} else {_$daty[$product_id] = array( 'product_id' => $product_id, 'product_name' => $product_name, 'product_quantity' => $product_quantity, 'product_price' => $product_price );_}_}$merged_array = array_values($daty);_print_r($merged_array);
Rate this post
4 of 5 based on 7217 votesComments