2015-04-05 56 views
1

我想比较从android应用程序通过mobileuser输入的条码到我从服务器端使用php从商家收到的json url。比较json响应从android到外部json url在php服务器

认为这是我的手机用户数据(硬编码):

$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":""}] 

这是我的代码,用于比较$ 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."} 

不过,我只是想输出是只有一条线路,在这种情况下,在第二行存在的代码,所以我只是想要的结果以显示成功和存在的结果。 (仅显示“条码已存在”)

我不想要不成功的结果。 任何人都可以提供帮助吗? 谢谢!

回答

0

试试看这样的:

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')); 
} 
+0

它的工作原理!然后,如果我要在if语句中调用另一个函数,例如:$ this - > actionValidatePhone();我死前放弃();对?或者我应该把它放在后面? – imcrazy 2015-04-05 08:58:38

+0

使用第二种解决方案,封装逻辑内部功能更好。 – alfallouji 2015-04-05 08:59:30

+0

对不起,这是什么意思:封装函数内部的逻辑? – imcrazy 2015-04-05 09:01:11