これは簡単なはずですが、うまくいかないようです。多次元配列があり、配列を反復処理して特定の値を確認することはありません。値が文字列と等しい場合は、配列の値をエコーアウトします。
これが配列と2つの値です(完全な配列にはもっとたくさんあります):
$users = array(
"username01" => array("fullname" => "Firstname Lastname",
"status" => "Online"),
"username02" => array("fullname" => "Firstname Lastname",
"status" => "Offline")
);
echo
「オンライン」である各ユーザーのフルネームを公表したくありません。これが私が今日使用しているものですが、機能していません:
$string = "Online";
foreach ($users as $username => $data) {
$fullname = $data["fullname"];
$status = $data["status"];
echo $status."= ";
if ($status == $string) {
echo "Yes";
} else {
echo "No";
}
echo "<br>";
}
エコーアウト$fullname
し$status
て正しいデータが出力された場合。しかし、何らかの理由でIFステートメントが機能していません。ユーザーがオフラインの場合、エコーは「いいえ」ですが、ユーザーがオンラインの場合、エコーはまったくありません。
編集-解決済み
以下に提案されているように、引用符と$data[...]で配列キーを更新しました。誤った出力を引き起こしているタイプミスを見つけました。すべての助けをありがとう。