PHP - Все подкатегории алимента в многомерном массиве - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть многомерный массив в PHP

Массив:

$Hierarchie = array(
    ...
    'Agrume' => array(
        'super-categorie' => array(0 => 'Fruit'),
        'sous-categorie' => array(
            1 => 'Citron',
            2 => 'Citron vert',
            3 => 'Kumquat',
            4 => 'Mandarine',
            5 => 'Orange',
            6 => 'Pamplemousse',
            7 => 'Partie d\'agrumes'
        ),
        'Orange' => array(
            'super-categorie' => array(0 => 'Agrume'),
            'sous-categorie' => array(1 => 'Orange sanguine')
        ),
        ...

у каждого алимента есть super-category и sub-category, я хочу иметь все subcategories алимента, например, не только его собственный: `Agrume 'я хочу в качестве результата массив с

(Citron' 'Citron vert' 'Kumquat' 'Mandarine' 'Orange' 'Pamplemousse' 'Partie d\'agrumes 

, а также подкатегории этих подкатегорий ... пока я не достигну конца рекурсивно.

1 Ответ

0 голосов
/ 18 ноября 2018

Фильтровать рекурсивно:

function array_filter_recursive( array $array, callable $callback = null ) {
    $array = is_callable( $callback ) ? array_filter( $array, $callback ) : array_filter( $array );
    foreach ( $array as &$value ) {
        if ( is_array( $value ) ) {
            $value = call_user_func( __FUNCTION__, $value, $callback );
        }
    }
    return $array;
}

$searchKeyword = 'Agrume';
$masterResult = array_filter_recursive($Hierarchie);
$subCategories =  $masterResult[$searchKeyword]['sous-categorie'];

print_r($subCategories);

Тест выхода здесь

...