Как я должен эффективно удалять элементы из PHP-массива?


В этом случае у меня есть массив, который обрабатывается в файл JSON. Обычно я использую все элементы в массиве, но для Аякса ползком я показываю только деталями поисковик попросил:

<?php $fitstyles = json_decode(file_get_contents(DATA_FILE), true); ?>
…
<?php
if ($base == "fits" || $base == "gallery") {
    /* For fragment handler, delete out the parts of the fits array that aren't needed. */
    $keep_fit = $fragments[1];
    $keep_style = $fragments[2];
    foreach ($fitstyles as $fit => $styles) {
        if ($fit != $keep_fit) {
            unset($fitstyles[$fit]);
            continue;
        }
        foreach ($styles as $style => $styleinfo) {
            if ($style != $keep_style) {
                unset($fitstyles[$fit][$style]);
                continue;
            }
        }
    }
} ?>

Здесь, $фрагментов выглядит следующим образом:

(
    [0] => fits
    [1] => straight
    [2] => utility
)

и $fitstyles принимает следующую форму:

Array
(
    [straight] => Array
        (
            [utility] => Array
                ( … )
        )
    [anotherfit] => Array
        (
            [anotherstyle] => ( … )
        )
)

Этот подход, кажется, работает, однако, пожалуйста, дайте мне обратную связь в отношении эффективности, эффективности и читабельности этого подхода.



795
5
задан 9 ноября 2011 в 03:11 Источник Поделиться
Комментарии
1 ответ

Ваш код просто отлично, точно, как я бы сделал это.

Там не так много, чтобы действительно обсудить, это довольно просто. Это как эффективна / эффективна, как хотелось бы, и читаемой.

3
ответ дан 2 января 2012 в 01:01 Источник Поделиться