Получить первый элемент подмассива в качестве его ключа

Я ищу простой способ преобразования ключей ассоциативного массива. Я хочу, чтобы ключ подмассива был первым значением самого себя. Можно ли изменить это:

Array
(
[0] => Array
    (
        [symbol] => ETHBTC
        [status] => TRADING
    )
[1] => Array
    (
        [symbol] => LTCBTC
        [status] => TRADING
    )
)

к этому :

Array
(
[ETHBTC] => Array
    (
        [status] => TRADING
    )
[LTCBTC] => Array
    (
        [status] => TRADING
    )
)

person William Ode    schedule 06.01.2018    source источник
comment
$new = array_column($array, null, symbol); Но сохраняет символ поля   -  person splash58    schedule 06.01.2018
comment
Почему бы вам не использовать вместо этого индексы (symbol и status)?   -  person csabinho    schedule 06.01.2018
comment
Я хочу запросить массив с помощью $array['symbol']   -  person William Ode    schedule 06.01.2018


Ответы (1)


Это не совсем дает ваш точный результат, но это может быть то, что вам нужно после...

$data = Array
(
        Array
        (
                'symbol' => 'ETHBTC',
                'status' => 'TRADING'
                ),
        Array
        (
                'symbol' => 'LTCBTC',
                'status' => 'TRADING2'
                )
        );

$data = array_column($data, null, 'symbol');
print_r($data);
echo $data['LTCBTC']['status'];

дает...

Array
(
    [ETHBTC] => Array
        (
            [symbol] => ETHBTC
            [status] => TRADING
        )

    [LTCBTC] => Array
        (
            [symbol] => LTCBTC
            [status] => TRADING2
        )

)
TRADING2
person Nigel Ren    schedule 06.01.2018
comment
У меня более 2 элементов в подмассиве (мой пример плохой). Ваше решение хорошее, но с нулевым значением в качестве второго параметра array_column, как ответ @splash58 ниже. - person William Ode; 06.01.2018