私のデータは、クライアントのCMSから引き出されている戻って、私は奇妙な結果出力PHPのarray_key_existsはFALSE間違っ
Array
(
[94] => stdClass Object
(
[operation] => 0
[value] => 0
)
[102] => stdClass Object
(
[operation] => 501
[value] => 4
)
[90] => stdClass Object
(
[operation] => 0
[value] => 0
)
)
94
stdClass Object
(
[operation] => 0
[value] => 0
)
(boolean) FALSE
(boolean) FALSE
102
stdClass Object
(
[operation] => 501
[value] => 4
)
(boolean) FALSE
(boolean) FALSE
90
stdClass Object
(
[operation] => 0
[value] => 0
)
(boolean) FALSE
(boolean) FALSE
これを引き起こしているものの任意のアイデアを
print_r($appliance_data);
foreach ($appliance_data as $adKey => $adValue) {
print_r($adKey);
print_r($adValue);
print_r(array_key_exists($adKey, $appliance_data));
print_r(isset($appliance_data[$adKey]));
}
を取得していますか?
編集:エラーはarray_key_existsとisset は配列をループして得られたキーに対してFALSEを返します。
serialize($appliance_data)
a:7:{s:2:"94";O:8:"stdClass":3:{s:9:"operation";s:3:"514";s:5:"value";s:1:"2";s:9:"frequency";s:1:"0";}s:3:"102";O:8:"stdClass":3:{s:9:"operation";s:3:"511";s:5:"value";s:1:"4";s:9:"frequency";s:1:"1";}s:2:"90";O:8:"stdClass":3:{s:9:"operation";s:1:"0";s:5:"value";s:1:"0";s:9:"frequency";s:1:"0";}s:2:"68";O:8:"stdClass":3:{s:9:"operation";s:3:"501";s:5:"value";s:1:"3";s:9:"frequency";s:1:"2";}s:2:"66";O:8:"stdClass":3:{s:9:"operation";s:1:"0";s:5:"value";s:1:"0";s:9:"frequency";s:1:"0";}s:2:"84";O:8:"stdClass":3:{s:9:"operation";s:1:"0";s:5:"value";s:1:"0";s:9:"frequency";s:1:"0";}s:2:"98";O:8:"stdClass":3:{s:9:"operation";s:1:"0";s:5:"value";s:1:"0";s:9:"frequency";s:1:"0";}}
あなたのコードの一部が奇数であるが(実行されません - あまりにも多くのブラケットをafter print_r())。ループビットは正常に実行されるはずですが、最後の行はエラーを引き起こすはずです。これを実行することでこれを確認できますか?私は似たようなコードを試してみるとループがうまく動いています。 –
@Matt、余分な括弧は、クライアントCMS内の深いコードのためでした。配列はクライアントのCMSによって提供されるので、私は間違ってコード化されていると思っています! – Zeophlite