How to extract only different values from an array?

4

I am extracting from a array city name. I want to extract cities with different names. In the current case, my script returns several names of equal cities. I want to recover only once each city name.

The result is this:

Array
(
    [2] => Array
        (
            [Codigo] => 2
            [Cidade] => Porto Alegre
        )

    [3] => Array
        (
            [Codigo] => 3
            [Cidade] => Porto Alegre
        )

    [4] => Array
        (
            [Codigo] => 4
            [Cidade] => Porto Alegre
        )
    ...

The script being used is this:

$cidades = new Imoveis;
$city = $cidades->get_cidades($cidades->key, $cidades->tipo, $cidades->param);

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

This script returns me real estate from a Webservice , so the bid would return only 1 property from each city or group real estate by cidade .

    
asked by anonymous 03.01.2016 / 02:15

1 answer

5

Use array_unique () combining with array_column () to extract only the non-repeated values of the key Cidade .

array_column() is available from php5.5 forward if you are using an earlier version, you can use this function to get the same result.

<?php

$arr = array(
            array('codigo' => 1, 'cidade' => 'Porto Alegre'),
            array('codigo' => 3, 'cidade' => 'Porto Alegre'),
            array('codigo' => 8, 'cidade' => 'São Paulo'),
            array('codigo' => 9, 'cidade' => 'Rio de Janeiro'),
            array('codigo' => 10, 'cidade' => 'Rio de Janeiro'),
            array('codigo' => 5, 'cidade' => 'Porto Alegre'));


$arr = array_unique(array_column($arr, 'cidade'));

echo '<pre>';
print_r($arr);

Output:

Array
(
    [0] => Porto Alegre
    [2] => São Paulo
    [3] => Rio de Janeiro
)

Example - phpfiddle

    
03.01.2016 / 02:33