检查特定的数组值是否设置为PHP

时间:2012-07-07 16:11:59

标签: php arrays multidimensional-array

我有一个新闻项目的滑块,并进行循环以获取每个项目的帖子信息。工作正常,但我被一个由json返回的参数卡住了,我再次循环它。 $ xtras参数返回一些附加值,其中一个是附加的介绍文本。我需要检查是否设置了此值,否则我需要返回默认的介绍文本。

我遇到的问题是,如果$xtra_values->id 44不存在,我会收到上一篇文章中的介绍文字,而不是帖子$post['intro']

$ xtras像这样返回stdClass对象

stdClass Object
(
    [id] => 1
    [value] => 38
)
stdClass Object
(
    [id] => 28
    [value] => 1
)
stdClass Object
(
    [id] => 44
    [value] => This is extra intro text
)

这是我的循环

foreach ($post_array as $key=> $posts){

    $xtras  = json_decode($posts['xtra']);

     foreach($xtras as $key=> $xtra_values){

        if($xtra_values->id == 44){
           $intro_text = $xtra_values->value;
        }else{
           $intro_text = $post['intro'];
        }     

     }




      echo $post['title'];.'<br />';
      echo $intro_text;
}

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

foreach($ post_array as $ key =&gt; $ posts){

$xtras  = json_decode($posts['xtra']);
$intro_text = null;


 foreach($xtras as $key=> $xtra_values){

    if($xtra_values->id == 44){
       $intro_text = $xtra_values->value;
    }     

 }
if($intro_text == null){
       $intro_text = $post['intro'];
    }

答案 1 :(得分:1)

尝试:

if(isset($xtra_values->id) && $xtra_values->id >= 0 && $xtra_values->id == 44){