簡體   English   中英

在PHP中過濾數組的數據並添加一個字段

[英]Filter datas of an array in PHP and add up a field

我有以下數組:

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [amount] => 16800
                    [created] => 1438114651
                    [status] => pending
                )

            [1] => Array
                (
                    [amount] => 16800
                    [created] => 1435854159
                    [status] => available
                )

            [2] => Array
                (
                    [amount] => 3300
                    [created] => 1435711645
                    [status] => available
                )
        )
)

我需要過濾這個數組只有available status和兩個創建日期之間sum of the amounts

我需要一個foreach嗎?

非常感謝你的幫助。

你可能正在尋找這樣的東西:

function totalAmount($array, $start = 0, $end = 1E+11) {
    $totalAvailable = 0;
    foreach($array as $item) {
        if(
            $item['status'] == 'available'
            && $item['created'] >= $start
            && $item['created'] < $end
            ) $totalAvailable += $item['amount'];
    }
    return $totalAvailable
}

$sum = totalAmount($foo['data'], $unixtimeStart, $unixtimeEnd);

我使用>=作為開始條件,但您可以根據需要進行調整。 此外,start和end參數現在是可選的。

請試試這個

$data=    Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [amount] => 16800
                    [created] => 1438114651
                    [status] => pending
                )

            [1] => Array
                (
                    [amount] => 16800
                    [created] => 1435854159
                    [status] => available
                )

            [2] => Array
                (
                    [amount] => 3300
                    [created] => 1435711645
                    [status] => available
                )
        )
)

$createdFrom = ...; // from date
$createdTo=...; // to date
$total=0;
foreach($data['data'] as $array)
    if($array['created'] > $createdfrom && $array['created'] < $createdTo) 
        if($array['status']=="available")
            $total+=$array['amount'];
echo $total;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM