検索してみましたが見つかりませんでした。申し訳ありませんが、解決策が既に存在する場合に見逃した場合...
コード
$json = '[{"id":"2","value":"1"},{"id":"1","value":"1"},{"id":"3", "値":""},{"id":"4","値":""},{"id":"5","値":""},{"id":"6" ,"値":""},{"id":"7","値":""},{"id":"8","値":""},{"id":"9 ","値":""},{"id":"10","値":"1"}]';
$myArray = json_decode($json);
foreach ($myArray as $key => $v) {
if ($v->id == 10 && ($v->value == 0 || $v->value == 1)) {
echo 'Value found at array key ' . $key;
}
}
出力
配列キー 9 で見つかった値
しかし、これは $json を一重引用符で囲んだ値で静的に指定した場合にのみ機能します...しかし、私の joomla プロジェクトでは、値はクラス変数の助けを借りてフェッチされるため$json=$item->extra_fields
、静的文字列を与える代わりに使用すると機能しません$json
。 .....
コード
$json=$item->extra_fields;
$myArray = json_decode($json);
foreach ($myArray as $key => $v) {
if ($v->id == 10 && ($v->value == 0 || $v->value == 1)) {
echo 'Value found at array key ' . $key;
}
}
出力
警告: /components/com_k2/views/item/view.html.php の 484 行目の foreach() に無効な引数が指定されています
アップデート:
echo "JSON: $json<br/><br/>";
echo "DUMP: ".var_dump($myArray);
出力
JSON: [{"id":"2","value":"1"},{"id":"1","value":"1"},{"id":"3","value":""},
{"id":"4","value":""},{"id":"5","value":""},{"id":"6","value":"<br \/>"},
{"id":"7","value":"<br \/>"},{"id":"8","value":"<br \/>"},{"id":"9","value":"<br \/>"},
{"id":"10","value":"1"}]
NULL DUMP:
--> json_decode で true を使用しても、出力は変更されません
ストリップスラッシュも機能しませんでした。チェック済み $item->extra_fields は文字列型です