我想将mobileuser从android应用程序输入的条形码与我使用php从服务器端的商家收到的json url进行比较。
假设这是我的移动用户数据(硬编码):
$mobile_card="Card1";
$mobile_code="00004000";
这是我收到的json url:
$merchant = file_get_contents('http://localhost/project1/index.php/memberaccount/sendjson');
$decode=json_decode($merchant, true);
json url中有两行数据:
[{"merchant_code":"12300000","merchant_contact":"011000000"},
{"merchant_code":"00004000","merchant_contact":"0123456789"}]
这是我比较$mobile_code和$merchant_code的代码:
foreach ($decode as $d)
{
$merchantCode = $d['merchant_code'];
if ($merchantCode == $mobile_code)
{
$response["success"] = 1;
$response["message"] = "code Exists.";
echo json_encode($response);
}
else
{
$response["success"] = 0;
$response["message"] = "code NOT Exists";
echo json_encode($response);
}
}
}
这是我得到的输出:
{"success":0,"message":"Code NOT exists"}
{"success":1,"message":"Code Exists."}
然而,我只希望输出只有一行,在这种情况下,代码存在于第二行,所以我只希望结果显示成功和存在的结果。(仅显示"条形码存在")
我不希望结果不成功。有人能帮忙吗?非常感谢。
这样试试:
foreach ($decode as $d)
{
$merchantCode = $d['merchant_code'];
if ($merchantCode == $mobile_code)
{
$response["success"] = 1;
$response["message"] = "code Exists.";
echo json_encode($response);
die();
}
}
$response["success"] = 0;
$response["message"] = "code NOT Exists";
echo json_encode($response);
或者,如果你想更优雅一点(使用die()
不是很好),可以将代码封装在一个函数中:
function lookupMerchantCode($merchants, $code)
{
foreach ($merchants as $merchant)
{
$merchantCode = $merchant['merchant_code'];
if ($merchantCode == $code)
{
return true;
}
}
return false;
}
$result = lookupMerchantCode($decode, $mobile_code);
if ($result)
{
echo json_encode(array('success' => 1, 'message' => 'code Exists'));
}
else
{
echo json_encode(array('success' => 0, 'message' => 'code NOT Exists'));
}