比较2个数组之间的2个值

时间:2015-09-11 02:00:01

标签: php arrays foreach compare

我的代码如下:

drupal_add_http_header('Content-Type', 'text/html');

我想要取得的成功是将变量foreach($client->GetSMSMessages($params)->GetReceivedMessages->ReceivedMessage as $value){ foreach($get_customer as $customer){ if(substr($customer['mobile'],1) == $value->MobileNumber || $customer['mobile'] == $value->MobileNumber){ $name = $customer['name']; }else{ $name = ''; } } $json['received'][] = array ( //'rec_id' => $value->SMSID, 'rec_sms' => $value->Body, 'rec_customer' => $name, 'rec_tel' => $value->MobileNumber, 'rec_date' => $value->DateTime ); } $customer['mobile']进行比较,如果有任何值匹配则打印客户名称($value->MobileNumber)。

有什么想法吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

找到匹配项时停止循环,因此在下一次迭代时不要将$name设置回''

实际上,没有必要每次都设置$name = ''。只需在循环之前初始化它,并在找到匹配项时将其设置为找到的客户名称。

foreach($client->GetSMSMessages($params)->GetReceivedMessages->ReceivedMessage as $val){
    $name = '';
    foreach($get_customer as $customer){
        if(substr($customer['mobile'],1) == $value->MobileNumber || $customer['mobile'] == $value->MobileNumber){
            $name = $customer['name'];
            break;
        }
    }
    $json['received'][] = array (
        //'rec_id' => $value->SMSID,
        'rec_sms' => $value->Body,
        'rec_customer' => $name, 
        'rec_tel' =>  $value->MobileNumber,
        'rec_date' => $value->DateTime
    );
}