Как посчитать уникальное значение в массиве в php - PullRequest
0 голосов
/ 03 июня 2019

Я получаю данные из базы данных в следующем формате, я просто хочу получить данные, Сколько названий ресторанов (кол-во) в какой стране, Как я могу это сделать?Как я могу изменить следующий массив / объект в php?

stdClass Object
(
    [_id] => 5ce405ced246f713b6256f3a
    [location] => stdClass Object
        (
            [country] => Kuwait
        )
    [employerDetails] => Array
        (
            [0] => stdClass Object
                (
                    [restraunt_name] => test1
                 )
        )

    [_id] => 5ce405ced246f713b6277373
    [location] => stdClass Object
        (
            [country] => Kuwait
        )
    [employerDetails] => Array
        (
            [0] => stdClass Object
                (
                    [restraunt_name] => test2
                 )
        )       
    ....
 )

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Поскольку объект может иметь одинаковые ключи, я предполагаю, что у вас есть массив объектов для каждого объекта ресторана.

Сначала я рекомендую получить только страны для разделения массива следующим образом:

foreach($objectArray as $restaurant)
    $countries[] = $restaurant->location->country;

Теперь вы можете использовать значения-массива , чтобы получить номер объекта по странам:

print_r(array_count_values($countries));
0 голосов
/ 03 июня 2019
$countries = array();
//first get all countries list
foreach ($array as $data) {
    if (!in_array($data->location->country, $countries)) {
        array_push($countries, $data->location->country);
    }
}
//get restraunt county wise
foreach ($array as $key => $data) {
    //if (in_array($data->location->country, $countries)) {
    if (!empty($data->location->country) && !empty($data->employerDetails[0]->restraunt_name)) {
        $countries_f[$data->location->country][$key] = $data->employerDetails[0]->restraunt_name;
    }
    //}
}
//get count of restraunt in each ocuntry
foreach ($countries as $cnt) {
    echo 'count of' . $cnt = count($countries_f[$cnt]) . '<br />';
}

echo "<pre>";
print_r($countries_f);

die;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...