Как отфильтровать конкретный элемент массива в WordPress / PHP? - PullRequest
0 голосов
/ 21 марта 2019

У меня есть php-код, как показано ниже, в котором я добавил строку # A для цели отладки.

<code><div class="vidlist-main__meta cf">
    <?php

    //if ( has_excerpt() ) {the_excerpt();}
    $tags = get_the_tags( get_the_ID() );
    $cats = wp_get_post_categories( get_the_ID() );                // Line#Z
    echo '<pre>'; print_r($cats); echo '
';// Строка # A if ($ tags || $ cats):?> // Строка # B

При добавлении строки # A я получаю следующие o / p в разных случаях:

Case A:

Array
(
    [0] => 13085
    [1] => 13093
)

Case B:

Array
(
    [0] => 1
    [1] => 13087
)

Case C:

Array
(
    [0] => 1
    [1] => 13085
)

Постановка задачи:

Мне интересно, какой код мне нужно добавить после строки # Z или строки # Z, чтобы строка # Z занимала только [1]=>13093.

1 Ответ

0 голосов
/ 21 марта 2019

Вы можете использовать массив intersect, если хотите сохранить только одно (или несколько значений)

<code><div class="vidlist-main__meta cf">
    <?php

    //if ( has_excerpt() ) {the_excerpt();}
    $tags = get_the_tags( get_the_ID() );
    $cats = array_intersect(wp_get_post_categories( get_the_ID() ), [13093]);                // Line#Z
    echo '<pre>'; print_r($cats); echo '
'; // Строка № A if ($ tags || $ cats):?> // Строка # B <? PHP \ CPAC \ Episodes \ generate_markup_for_categories ($ cats); // Строка # C \ CPAC \ Episodes \ generate_markup_for_tags ($ tags); // Строка # D ?> <? php endif;?>

Простейший пример этого:

$a = [13085,13093];
print_r(array_intersect($a, [13093]));

выход

Array
(
    [1] => 13093
)

Sandox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...