以下是我的stdClass对象的输出:
stdClass Object (
[all] => 0
[book] => 0
[title] => 1
[author] => 1
[content] => 0
[source] => 0
)
我想将值1
的元素存储在变量中。
假设在上面的示例中,我想存储$a='author' . 'title'
。是否可以使用foreach
或任何其他整洁方法,而不是手动检查每个方法是否具有1
值,然后存储它们?
答案 0 :(得分:1)
单线解决方案:
$c = new stdClass();
$c->all = 0;
$c->book = 0;
$c->title = 1;
$c->author = 1;
$c->content = 0;
$c->source = 0;
$a = implode(',', array_keys( array_filter( (array)$c) ) );
var_dump($a);
会产生
string(12) "title,author"
答案 1 :(得分:1)
我认为最简单的方法是使用foreach:
$myStdClass = /* ... */;
$a = '';
foreach ($myStdClass as $key => $value) {
if ($value) {
$a .= $key;
}
}
答案 2 :(得分:0)
<?
$result = '';
foreach($your_stdclass as $key => $value) {
if($value == '1') {
$result .= $key;
}
}
echo $result;
?>
看起来就像你问的那样,虽然我不知道这有多大意义