比较来自 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'));
}