2

I have a custom model with three fields, i.e id, city and region. How can I remove duplicates from the region column when querying the table? How can I group all the cities under the same region? I have pasted the response from the model below

Array ( [0] => Array

    (   [city] => City 1
        [region] => Region 1
    )

[1] => Array

(   [city] => City 2
    [region] => Region 1
)

[2] => Array ( [city] => City 3 [region] => Region 1 )

[3] => Array ( [city] => City 4 [region] => Region 1 )

)

Tebby
  • 23
  • 3

1 Answers1

1

Assume you have the below array:

Array
(
    [0] => Array
        (
            [city] => City 1
            [region] => Region 1
        )
[1] => Array
    (
        [city] => City 2
        [region] => Region 1
    )

[2] => Array
    (
        [city] => City 3
        [region] => Region 1
    )

[3] => Array
    (
        [city] => City 4
        [region] => Region 1
    )

[4] => Array
    (
        [city] => City 1
        [region] => Region 2
    )

[5] => Array
    (
        [city] => City 2
        [region] => Region 2
    )

[6] => Array
    (
        [city] => City 1
        [region] => Region 3
    )

)

You can use the below code to group city by region:

$items = [];
foreach ($collection as $item) {
    $items[$item['region']][] = $item['city'];
}

The result:

Array
(
    [Region 1] => Array
        (
            [0] => City 1
            [1] => City 2
            [2] => City 3
            [3] => City 4
        )
[Region 2] => Array
    (
        [0] => City 1
        [1] => City 2
    )

[Region 3] => Array
    (
        [0] => City 1
    )

)

Tu Van
  • 6,868
  • 2
  • 11
  • 22