Как мне извлечь несколько значений из многомерного массива в wp_options?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/7537

  •  16-10-2019
  •  | 
  •  

Вопрос

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

Мои данные приведены ниже и хранятся как option_name "my_category_fields".

Мне нужно получить строку идентификаторов категорий, в которой my_cat_hide имеет значение true.Я отключил здесь свою функцию.Как мне это сделать?

function get_hidden_cats()
{
$my_cats = get_option('ce4_category_fields');
    //how do I capture the list of category ids where my_cat_hide is 'true'?
    $my_hidden_cats = ?
    return $my_hidden_cats;
}

my_category_fields ( моя категория ):

a:17:{
    i:20;a:1:{s:13:"my_cat_title";s:30:"Black Tea is Good for the Soul";}
    i:9;a:1:{s:13:"my_cat_title";s:58:"Herbal Chinese Tea is a spectacular blend of herbs and tea";}
    i:44;a:1:{s:13:"my_cat_title";s:24:"This is my 9th category!";}
    i:7;a:1:{s:13:"my_cat_title";s:0:"";}
    i:19;a:1:{s:13:"my_cat_title";s:0:"";}
    i:4;a:2:{s:13:"my_cat_title";s:28:"My test Title for Chai Tea 4";s:12:"my_cat_hide";N;}
    i:37;a:1:{s:13:"my_cat_title";s:0:"";}
    i:16;a:1:{s:13:"my_cat_title";s:0:"";}
    i:5;a:2:{s:13:"my_cat_title";s:0:"";s:12:"my_cat_hide";N;}
    i:6;a:1:{s:13:"my_cat_title";s:0:"";}
    i:8;a:1:{s:13:"my_cat_title";s:0:"";}
    i:3;a:1:{s:13:"my_cat_title";s:0:"";}
    i:10;a:1:{s:13:"my_cat_title";s:59:"Iced Tea: The Great Southern Choice for Cooling Refreshment";}
    i:36;a:1:{s:13:"my_cat_title";s:28:"Full title for this category";}
    i:38;a:2:{s:13:"my_cat_title";s:0:"";s:12:"my_cat_hide";s:4:"true";}
    i:39;a:2:{s:13:"my_cat_title";s:0:"";s:12:"my_cat_hide";s:4:"true";}
    i:40;a:2:{s:13:"my_cat_title";s:0:"";s:12:"my_cat_hide";s:4:"true";}
}
Это было полезно?

Решение

Для этого необходимо выполнить следующее:

function get_hidden_cats() {
    $my_cats = get_option('ce4_category_fields');

    $my_hidden_cats = array();
    foreach( $my_cats as $cat_id => $cat_attrs ) {
        if( 'true' == $cat_attrs['my_cat_hide'] )
            $my_hidden_cats[] = $cat_id;
    }
    $my_hidden_cats = implode( ',', $my_hidden_cats );

    return $my_hidden_cats;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top