0

ニュースアイテム用のスライダーがあり、それぞれの投稿情報を取得するためにループを実行しています。正常に動作しますが、jsonによって返される1つのパラメーターでスタックし、再びループします。$ xtrasパラメーターは、いくつかの追加の値を返します。そのうちの1つは、追加のイントロテキストです。この値が設定されているかどうかを確認する必要があります。そうでない場合は、デフォルトのイントロテキストを返す必要があります。

私が抱えている問題は、 $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;
}

どんな助けでも大歓迎です。ありがとうございました!

4

2 に答える 2

2

foreach($ post_array as $ key => $ 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'];
    }
于 2012-07-07T16:15:31.540 に答える
1

試す:

if(isset($xtra_values->id) && $xtra_values->id >= 0 && $xtra_values->id == 44){
于 2012-07-07T16:13:43.183 に答える