PHP Shopware Rest API - Как суммировать конкретные значения ключей массивов в массиве - PullRequest
0 голосов
/ 24 октября 2019

Я хочу рассчитать и показать оборот некоторых интернет-магазинов (Plattform: Shopware), отфильтрованных по месяцам и без отмененных заказов. Я подключился к интернет-магазину, я уже получил все заказы, отсортировал их по месяцам, отфильтровал отмененные заказы. Теперь я поместил все соответствующие заказы в новый массив, который называется $ october. В октябре $ каждый отдельный ордер является массивом со многими ключами и значениями. Мне просто нужно суммировать все значения "invoiceAmount" вместе, чтобы я мог показать оборот в этом месяце. Я перепробовал много вариантов (прокомментировал), лучшее, что я получаю, это "0" при инициализации $ sum ... но я также очень новичок в php. Пожалуйста, помогите мне: -)

Заказы ресурсов API

<?php
include_once ('api.php');

$url = xxxxx;
$user = xxxxx;
$key = xxxxx;

$client = new ApiClient($url,$user,$key);
$orders = $client->get('orders');
$october = [];

echo "<h1>===================month Array==============</h1>";
foreach ($orders as $order) {           
    foreach ($order as $field) {
        if ($field["orderStatusId"]!==4) {

            $mystring = $field[orderTime];
            $findme   = '-10-';
            $pos = strpos($mystring, $findme);

            if ($pos !=null) {
              print_r($field);
              array_push($october,$field);
            } 
        }

    }
}

echo "<script>";
echo 'console.log('.json_encode($october).')';
echo "</script>";
print_r($october);

echo("<h1>===================Sum of month==============</h1>");

$sumOctober = 0; 
    foreach ($october as $field["invoiceAmount"]=>$value) {
        $sumOctober+= $value;
        }


/*
$sumOctober = 0; 
foreach ($october as $order) {
    foreach ($order as $field["invoiceAmount"]=>$value) {
        $sumOctober+= $value;

    }
}
*/
echo($sumOctober);

/*
$arr = $october;
$sum = 0;
foreach ($arr as $order){
    foreach ($order as $field["invoiceAmount"]=>$value) {
    $sum += $value;
}
}
*/

/*
$arr = $october($orders($key));
    $sum = 0;
    array_walk_recursive($arr, function($val, $key) use (&$sum) {
        $sum += $val;
    });
    var_dump($sum);
echo "<h1>Die Summe Oktober ist:</h1>";
echo ($sum);
*/
?>

php answer in browser page 1

php answer in browser page 2

php answer in browser page 3

php answer in browser page 4

php answer in browser page 5

1 Ответ

0 голосов
/ 24 октября 2019

Это полностью помогло, не знаю, почему парень удалил свой ответ сразу ... но спасибо!

$sumOctober = 0; 
foreach ($october as $oct) {
    $sumOctober+= $oct["invoiceAmount"];
}
...