【问题标题】:How do I display the keys of post-meta boolean variables that are true?如何显示为 true 的后元布尔变量的键?
【发布时间】:2019-07-12 02:25:42
【问题描述】:

在自定义帖子类型上,我有三个布尔变量高级自定义字段,它们在不同位置切换:第一、第二和第三。我想在我的网站上打印这些位置。为此,我需要将所有为 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 的组合。

我想去掉所有的 0。然后打印所有 true/1 的键。所以它打印,例如:“First, Third”

【问题讨论】:

  • $1、$2、$3 的例子是什么?

标签: php boolean advanced-custom-fields


【解决方案1】:

如果我对您的理解正确,那么您可以使用 array_filter 删除 false,并使用 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

【讨论】:

  • 谢谢!这是一个非常简单/优雅的解决方案,而且效果很好。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 2018-08-19
  • 2021-03-08
  • 2016-05-07
  • 1970-01-01
相关资源
最近更新 更多