PHP: сгладить массив - самый быстрый путь?

Там какой-либо быстрый путь состоит в том, чтобы сгладить массив и избранные подразделы ('ключ '&'value' в этом случае), не выполняя цикл foreach, или foreach всегда является самым быстрым путем?

Array
(
    [0] => Array
        (
            [key] => string
            [value] => a simple string
            [cas] => 0
        )

    [1] => Array
        (
            [key] => int
            [value] => 99
            [cas] => 0
        )

    [2] => Array
        (
            [key] => array
            [value] => Array
                (
                    [0] => 11
                    [1] => 12
                )

            [cas] => 0
        )

)

Кому:

Array
(
    [int] => 99
    [string] => a simple string
    [array] => Array
        (
            [0] => 11
            [1] => 12
        )
)
5
задан Your Common Sense 28 May 2010 в 17:02
поделиться

2 ответа

Попробуйте это:

$ret = array();
while ($el = each($array)) {
    $ret[$el['value']['key']] = $el['value']['value'];
}
3
ответ дан 14 December 2019 в 19:03
поделиться

call_user_func_array ("array_merge", $ subarrays) может использоваться для "сглаживания" вложенных массивов.
Вы хотите чего-то совершенно другого. Вместо этого вы можете использовать array_walk () с обратным вызовом для извлечения данных в желаемый формат. Но нет, цикл foreach все еще быстрее. В противном случае нет метода array _ * для создания вашей структуры.

3
ответ дан 14 December 2019 в 19:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: