Суммарное значение массива Php из пары ключ-значение

1

это мой вывод массива:

array:2 [
  0 => array:1 [
    "medium " => " 1"
  ]
  1 => array:1 [
    " small " => " 2"
  ]
]

Мое решение

$sumVariant = array();
            foreach ($data as $key => $value) {
                        foreach ($value as $k => $v) {
                                    //dd(trim($v));
                            $sumVariant += trim($v);
                        }
            }
dd($sumVariant);

Как я могу подсчитать общее количество как для medium и для small которые возвращают 3? Благодарю!!

  • 0
    что ты пробовал до сих пор?
  • 1
    Посмотрите на функции массива в руководстве по PHP. Это должно быть очевидно после небольшого исследования и размышления. Примечание: возможно, вам следует подумать об изменении своего дескриптора, вы можете не так хорошо себя вести, как «d3bug3r», если не можете понять это на своем одиноком.
Показать ещё 3 комментария
Теги:
arrays

4 ответа

1

Я запускаю ваш код, когда вы пишете в своем вопросе. И имейте некоторые изменения, как показано ниже. Это дает правильный ответ.

<?php
$data =array(0=>array("medium "=>" 1"),1=>array(" small "=>" 2"));

$sumVariant=0;
foreach ($data as $key => $value) {
            foreach ($value as $k => $v) {
                        //dd(trim($v));
                $sumVariant += trim($v);
            }
}
echo $sumVariant;?>
0
 $data =array(0=>array("medium "=>" 1"),1=>array(" small "=>" 2"));



 foreach ($data as $array_single) {
                           $sum_value += array_sum($array_single);

                }
echo $sum_value;

array_sum() возвращает сумму целого числа в виде строки или int

нелогич- :: -

<?php
$a=array(' 5',15,25,'ajj');
echo array_sum($a);
?>

O/P :: - 45

0

Использовать array_walk_recurive

$array_total = 0;
$arr = array(array('small'=>2), array('medium'=>1));
array_walk_recursive($arr, function($value, $key){
    global $array_total;
 $array_total += $value;
});
    echo $array_total; // output 3
  • 0
    не получится, вернется 0
  • 0
    Я проверил, и он работает нормально. tehplayground.com/#dgD1FwNTs (нажмите Ctrl + Enter, чтобы увидеть вывод)
0
<?php
$total = 0;
foreach ($array as $inputArray) {
    if (array_key_exists ("medium", $array)) $total += $array["medium"] ;   
    if (array_key_exists ("small",  $array)) $total += $array["small"]  ;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню