質問

私のWCF Webサービスによって返されるデータの解析に問題がある。

Webサービスは文字列の配列を渡しています。このデータはSTDCLASSオブジェクトに入れられます。

STDCLASSオブジェクトを扱ったことがない私は何をすべきかは確かではありません。

以下が現在使用しているコードは、Webサービスコールからの戻り値です。

<ul>
<?php var_dump($containers)?>
<?php foreach($containers as $item):?>
<li>
<?php 
echo $item->string;
?>
</li>
<?php endforeach;?>
</ul>
.

返却された値が1つある場合、次のコードはうまく機能し、返されたコンテナ名を表示します。 返品されている値が1以上の場合$ ITEM-> STRINGが配列になります。STDClassが含まれている値を決定するのは何ですか?

var_dump Just 1コンテナ

object(stdClass)[13]
public 'GetContainersResult' => 
object(stdClass)[14]
public 'string' => string 'container1' (length=10)
.

1つ以上のコンテナを持つvar_dump

object(stdClass)[13]
public 'GetContainersResult' => 
object(stdClass)[14]
public 'string' => 
array
0 => string 'container1' (length=10)
1 => string 'container2' (length=10)
.

事前にありがとう、

マット

役に立ちましたか?

解決

you can use is_array($item->string) to check if you have an array and then process it appropriately. Based on your code, I think something like this might work for you.

<?php var_dump($containers)?>
<ul>
<?php foreach($containers as $item):
         if(is_array($item->string)):
            foreach($item->string as $subitem):
                <li class="subitem"><?php echo $subitem; ?></li>
            <?php 
            endforeach;
         else: ?>
        <li><?php echo $item->string; ?></li>
          <?php 
          endif;
      endforeach;    
?>
</ul>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top