循环stdClass对象并获取变量中的内容

时间:2013-06-16 15:05:15

标签: php stdclass

以下是我的stdClass对象的输出:

stdClass Object ( 
      [all] => 0 
      [book] => 0 
      [title] => 1 
      [author] => 1 
      [content] => 0 
      [source] => 0 
     )

我想将值1的元素存储在变量中。

假设在上面的示例中,我想存储$a='author' . 'title'。是否可以使用foreach或任何其他整洁方法,而不是手动检查每个方法是否具有1值,然后存储它们?

3 个答案:

答案 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;
?>

看起来就像你问的那样,虽然我不知道这有多大意义