PHP Count Duplicate Total Link

1

как я могу подсчитать общую дублируемую ссылку в массиве?

его аналогичный вопрос здесь: количество повторяющихся элементов в массиве в php

но я не уверен, как реализовать код на моем случае. мой сервер PHP версия 5.4

Array
(
    [0] => Array
        (
            [link] => http://myexample.com
            [total] => 3
        )

    [1] => Array
        (
            [link] => http://myexampledomain.com
            [total] => 2
        )

    [2] => Array
        (
            [link] => http://myexample.com
            [total] => 1
        )
)

Я ожидаю, что результатом будет:

http://myexample.com: 4
http://myotherdomain.com: 2
Теги:
multidimensional-array

3 ответа

3
Лучший ответ

Вы можете просто использовать

$result = [];
array_walk($arr, function($v, $k)use(&$result) {
    if (isset($result[$v['link']])) {
        $result[$v['link']] += $v['total'];
    }else{
        $result[$v['link']] = $v['total'];
    }
});
print_r($result);

демонстрация

  • 1
    Не вижу этого. :)
  • 0
    Такое случается.....
Показать ещё 3 комментария
2

Попробуйте под кодом:

<?php
$array = array(array("link" => "http://myexample.com", "total" => 3), array("link" => "http://myexampledomain.com", "total" => 2), array("link" => "http://myexample.com", "total" => 1));
$res = array();
foreach ($array as $vals) {
    if (array_key_exists($vals['link'], $res)) {
        $res[$vals['link']]+=$vals['total'];
    } else {
        $res[$vals['link']]=$vals['total'];
    }
}
print_r($res);
?>
  • 0
    Это работает .. спасибо за вашу помощь :)
  • 0
    Рад был помочь! :)
1

Вы можете использовать эту простую логику:

$tempArray = array();
foreach ($array as $value) {
    if (!array_key_exists($value['link'],$tempArray) {
        $tempArray[$value['link']] = 1;
    } else {
        $tempArray[$value['link']] = $tempArray['link'] + 1;
    }
}

print_r($tempArray);

Ещё вопросы

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