1

私は小さな問題に直面しており、それが今私を狂わせています。それはおそらく簡単でばかげたものかもしれませんが、まあ.. 私はコーヒーをあまり飲んでいません。

これは、印刷したときの私の配列です。

stdClass Object ( 
[SelectEmployeeResult] => stdClass Object ( 
[string] => Marijke Hakvoort ) )

文字列を選択メニューに出力します<select></select>

私はこのようにこれを行います:

$employee = array ('pkrelation' => $_SESSION['username']);
$employeeResponse = $wcfclient->SelectEmployee($employee);
print_r($employeeResponse);
?>
<td><label>User:</label></td>
<td><select name="gebruiker">
<?php
if(count($employeeResponse) < 2){
    foreach($employeeResponse->SelectEmployeeResult as $key => $value){
        echo "<option>".$value."</option>"; 
    }
}

しかし、問題は次のとおりです。オブジェクト配列に 2 人のユーザーがいる場合、次のように選択オプション タグに名前が表示されず、「配列」だけが表示されます。

stdClass Object ( 
[SelectEmployeeResult] => stdClass Object ( 
[string] => Array ( 
[0] => Marijke Hakvoort 
[1] => User Test ) ) )

これで、次のコードを使用してこのユーザーを表示できます。

if(count($employeeResponse) > 0){
    foreach($employeeResponse->SelectEmployeeResult as $key => $value){
        foreach($value as $key1 => $value1){
            echo "<option>".$value1."</option>";
        }
    }
}

しかし、1 人のユーザーを削除すると、何も表示されなくなります。この場合、count 関数が思い通りに動作しないようです。助けてください!

4

3 に答える 3

3

コードは次のように少し変更する必要があります。

foreach($employeeResponse->SelectEmployeeResult as $key => $value){
    echo "<option>".$value."</option>"; 
}

次のように変更します。

foreach($employeeResponse->SelectEmployeeResult as $key => $value){
    if(is_array($value)){
       foreach($value as $k1 => $v1){
        echo "<option>".$v1."</option>";                
       }
    }else{
        echo "<option>".$value."</option>"; 
    }
}
于 2013-08-22T08:05:11.353 に答える
0
empty($arrayName)

空の配列でチェックしてみてください

于 2013-08-22T08:05:40.563 に答える