比较来自 android 的 json 响应与 php 服务器中的外部 json url
Comparing json response from android to external json url in php server
我想比较移动用户从 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."}
但是,我只想输出一行,在这种情况下,代码存在于第二行,所以我只希望结果显示成功和存在的结果。 (仅显示 "Barcode existed")
我不想要失败的结果。
任何人都可以帮忙吗?
谢谢!
试试看:
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'));
}
我想比较移动用户从 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."}
但是,我只想输出一行,在这种情况下,代码存在于第二行,所以我只希望结果显示成功和存在的结果。 (仅显示 "Barcode existed")
我不想要失败的结果。 任何人都可以帮忙吗? 谢谢!
试试看:
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'));
}