Home >Backend Development >PHP Tutorial >关于array_diff函数的问题

关于array_diff函数的问题

WBOY
WBOYOriginal
2016-06-23 13:42:21802browse

我用array_diff对比读取到的txt文件标题是否和我设定的一样,其中最后一个字段始终判定为不一样,表面看最后一个字段多了一个空格,我加了一个空格,也判定不一样,请问我用什么方法看txt文件最后一个字段的内容是什么??


回复讨论(解决方案)

把??txt??base64,再看看是否相同。

可以把你的代码粘贴出来吗???

需要看到你的代码和测试数据

private function CheckFileType($array){    $type="";    foreach($this->filetypearray as $name=>$value){        $ar=array_diff($array,$value);         if(empty($ar)){            $type=$name;        }       }    return $type;  }private   $filetypearray=array(                            'downloadfile'=>array('order-id','order-item-id','purchase-date','payments-date','buyer-email',                                                  'buyer-name','buyer-phone-number','sku','product-name','quantity-purchased','currency','item-price',                                                  'item-tax','shipping-price','shipping-tax','ship-service-level','recipient-name','ship-address-1',                                                  'ship-address-2','ship-address-3','ship-city','ship-state','ship-postal-code','ship-country',                                                  'ship-phone-number','delivery-start-date','delivery-end-date','delivery-time-zone',"delivery-Instructions ")   ); $order['28']='('.base64_encode($more[28]).')'; $order['29']='('.base64_encode($this->filetypearray['downloadfile'][28]).')';[28] => (ZGVsaXZlcnktSW5zdHJ1Y3Rpb25zDQ==)[29] => (ZGVsaXZlcnktSW5zdHJ1Y3Rpb25zIA==)

两个字段的base64结果,最后部分不一样

那个DQ==是什么??我不加空格编码就是ZGVsaXZlcnktSW5zdHJ1Y3Rpb25z

base64 编码的:
DQ== 是回车符 0x0d (chr(13))
IA== 是空格符 0x20 (chr(32))

一般情况下首尾的空白字符是可忽略的,所以宜 trim 一下
$ar = array_diff(array_map('trim', $array), array_map('trim', $value));

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn