php array compare,php多维数组compare - 800716的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

php多维数组compare

上一篇 /

下一篇  2011-04-07 18:07:00

/ 个人分类:自动化测试

最近,在帮其它部门做一个API的比对。之前用的是SQL,现在想迁移到Mysql。但需要测试两边的返回值是否一致。

开发提供的web展现格式是php数组。刚开始想到的是直接遍历。后来发现file_get_contents后的类型为string.还需要转换为php array.

思路:

1. 将 url放入文件url中。 但不包含域名,因为域名需要作为参数。

2. 然后逐行读取并用file_get_contents获取每行的string.

3. 获取后将之转化为php array。

4. 将主键按id进行重组。

5. 然后将sql和Mysql的都转化成php array.

$file_handle = file("url");  ## 将 url放入文件url中

foreach($file_handle as &$li) {  #遍历url里边的每行

$line = "http://config.dangdang.com/$li";  #拼接

$sql= "http://config.dangdang.sqlserver/$li"; #拼接

$a=file_get_contents($line);           #获取string

$A=file_get_contents($sql);

#  echo $line;

#  echo $sql;

eval('$b='.$a.';');       #转化为php array。

foreach($b['c2c_shop_policy'] as $r){   #找到主键为c2c_shop_policy

$c[$r['id']]=$r;   #将主键按id进行重组

}

#################################sqlserver###############

eval('$B='.$A.';');

foreach($B['c2c_shop_policy'] as $R){

$C[$R['id']]=$R;

}

echo "The $q url is $line \n";

$q=$q+1;

compare($c,$C);

$c=array("");

$C=array("");

################

6. compare进行递归比较验证。

compare函数  #对php 数组进行递归比较。

#!/usr/local/php/bin/php

$a = array( 123 => array ( "name"  => "zhang",

"age"  => 30,

"text" => "hello"

),

456 => array ( "name"  => "zhang",

"age"  => 30,

"text" => "hello"

),

);

$b = array( 123 => array ( "name"  => "zhang",

"age"  => 30,

"text" => "mhello"

),

456 => array ( "name"  => "zhang",

"age"  => 30,

"text" => "hello"

)

);

compare($a,$b);  #验证$a的键是否存在于$b.

compare($b,$a);  #验证$b的键是否存在于$a.

function compare($aa,$bb) {

foreach ($aa as $k => $v) {

if (isset($bb[$k])) {

if ( is_array($v) ) {

compare($v,$bb[$k]);

}

else {

### 简单值比较

if ($bb[$k] == $v ) {

echo "ok.. $k\n";

}

else {

echo "diff value in site (key:$k, value:$v)\n";

}

}

}

else {

echo "Doesn't exist in site B (id:$k)\n";

}

}

}

TAG:

我来说两句

显示全部

d8a3dac35532145b347031a8fb402eba.gif

4d73fc83cb27b31041650c043e06fdc8.gif

5d06f4dc9b08a7e1fecdedaf9fe87c66.gif

659391f05d11818e0d3bd694a6d99ddc.gif

f27d7d9f67d98cc858fe74ff4d76554e.gif

b0d82b880d66765dd2a1af173b20f406.gif

e87f042c31e114675541bb49e0fbf138.gif

97a372eda248bf63679ecf2d47467589.gif

a14a392968e29ace4cb2ca390d53264e.gif

ff31a40db0d852c3704276b17a1dd158.gif

46298ad80746c3790e9535ce3396efec.gif

ef97f2303f935b723744c0c99db267f8.gif

46add61d58ae5b455d8994b1485357d3.gif

701ffdce43c5ac45c241dba6a7ae431d.gif

4ac0c1a50de5d21a8087006d0295547a.gif

e54bbadbdbb00b0b5cc4182352ca2352.gif

afb655844bdfda4cf47fef6d239f009d.gif

bf5c12b671f1179ba425de53370ebd3d.gif

865ad24093d248b0ec3b85ea66a6aaa7.gif

ab80f8b6419577f8a8ad7bb690794024.gif

内容

昵称

验证

ada834077f6a48ad60a11ec0354fde86.png

提交评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值