Как отобразить ключи булевых переменных пост-мета, которые являются истинными? - PullRequest
1 голос
/ 12 июля 2019

Для пользовательского типа записи у меня есть три дополнительных настраиваемых поля с булевыми переменными, которые переключаются в разные места: первое, второе и третье.Я хочу напечатать эти места на моем сайте.Для этого мне нужно распечатать все ключи местоположения, которые имеют значение true / 1, в массив.

Я не знаю, с чего начать, но вот что у меня есть:

$2= get_post_meta( $post_id, 'settings_location_second', true );
$3= get_post_meta( $post_id, 'settings_location_third', true );
$location = array($1, $2, $3);

echo join( ', ', $location );

В настоящее время я могу вернуть только переменные местоположения в массиве, который представляет собой комбинацию из трех нулей или единиц.

Я хочу вырезать все 0.А затем вместо этого распечатайте ключи всех истинных / 1.Так печатается, например: «Первый, Третий»

1 Ответ

2 голосов
/ 12 июля 2019

Если я вас правильно понял, вы можете использовать array_filter, чтобы удалить ложь, и array_combine, чтобы установить ключи для массива с первым, вторым и третьим.
Затем просто возьмите ключи, оставленные от фильтра.

$n1 = true;
$n2 = false;
$n3 = true;

$location = array_combine(['first', 'second', 'third'], array($n1, $n2, $n3));
//$location = ["first" => true, "second" => false, "third" => true]

$location = array_keys(array_filter($location));
//["First", "third"]

echo join( ', ', $location ); // first, third

https://3v4l.org/24SNK

...