想知道如何在以下数组中搜索[law],然后只返回[fine]该法律?
Array ( [0] => Array (
[law] => Unroadworthy Vehicle
[fine] => 500
[jail] => 0
[statute] => Any registered vehicle that is lacking headlights, taillights, windshields, has extensive damage, or deemed unsafe to operate, can be considered unroadworthy. Vehicles to do not return a registration shall also be considered unroadworthy. )
[1] => Array (
[law] => Headlights Required
[fine] => 500
[jail] => 0
[statute] => Failure to use headlights after dark or in poorly lit areas or roadways )
..(数组连续108个唯一项)
我要遍历并在下拉菜单中显示法律
echo "<select name=\"charge\">";
$strJsonFileContents = file_get_contents("./includes/laws.json");
$issue = json_decode($strJsonFileContents, true);
$arrlength = count($issue);
for ($x = 0; $x < $arrlength; $x++)
{
$law = $issue[$x][law];
echo "<option name=\"law\" value=\"$law\">$law</option>";
}
echo "</select><br><br>";
我实际上不打算做隐藏元素部分。
我想在json_decode中搜索[law]并返回[fine]
答案 0 :(得分:0)
您的$ law变量没有预期值,您应该会收到如下错误:
使用不确定的恒定定律-假定为“定律”
echo "<select name=\"charge\">";
$strJsonFileContents = file_get_contents("./includes/laws.json");
$issue = json_decode($strJsonFileContents, true);
$arrlength = count($issue);
for ($x = 0; $x < $arrlength; $x++)
{
$law = $issue[$x]['law'];
echo "<option name=\"law\" value=\"$law\">$law</option>";
}
echo "</select><br><br>";
关于隐藏的[fine]元素,您可以查看此question并执行以下操作:
$('#mySelect').change(function(){
var id = $(this).find(':selected')[0].id;
$('#hiddenFineInput').val(id);
})
答案 1 :(得分:0)
有一个类似的问题与解决方案。请参阅下面的链接。 PHP search array in array
答案 2 :(得分:0)
如果您只需要通过罚款,那么这将起作用:
if (Input.GetKeyUp (KeyCode.LeftShift)
|| Input.GetKeyUp (KeyCode.W))
{
myAnimator.speed = 0f;
myAnimator.Play("cshake",0,0f);
}
如果您需要通过法律和罚款,那么您需要使用一些JavaScript来存储json对象,侦听选择字段的更改,然后在更改罚款时将罚款添加到隐藏字段中循环遍历json对象,并根据选择的法则进行罚款。
答案 3 :(得分:0)
我当时想得太深了..看来这将实现我的追求。
$arrlength = count($issue);
for ($x = 0; $x < $arrlength; $x++) {
if($issue[$x]['law'] == $law) { $fine = $issue[$x]['fine']; }
}