再问多维数组比较问题

dreams1981 2009-07-25 04:21:48

$q[] = Array ('a' => '1', 'b' => '11');
$q[] = Array ('a' => '2', 'b' => '22');
$s[] = Array ('a' => '1', 'b' => '11');
$s[] = Array ('a' => '2', 'b' => 'BB');
$s[] = Array ('a' => '3', 'b' => 'CC' );
$s[] = Array ('a' => '4', 'b' => '11');

$d = array_diff($s,$q);//知道不是这样写
结果是:
Array ( [1] => Array ('a' => '2', 'b' => 'BB'),
[2] => Array ('a' => '3', 'b' => 'CC' ),
[3] => Array ('a' => '4', 'b' => '11'));

$e = array_diff($s,$q);//知道不是这样写
结果是:
Array ( [1] => Array ('a' => '2', 'b' => '22'));

======================================
该如何实现呢? 有没有这样的函数
...全文
71 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreams1981 2009-07-25
  • 打赏
  • 举报
回复

$q[] = Array ('a' => '1', 'b' => '11');
$q[] = Array ('a' => '2', 'b' => '22');
$s[] = Array ('a' => '1', 'b' => '11');
$s[] = Array ('a' => '2', 'b' => 'BB');
$s[] = Array ('a' => '3', 'b' => 'CC' );
$s[] = Array ('a' => '4', 'b' => '11');

$d = array_diff($s,$q);//知道不是这样写
结果是:
Array ( [1] => Array ('a' => '2', 'b' => 'BB'),
[2] => Array ('a' => '3', 'b' => 'CC' ),
[3] => Array ('a' => '4', 'b' => '11'));

$e = array_diff($q,$s);//知道不是这样写
结果是:
Array ( [1] => Array ('a' => '2', 'b' => '22'));


第二个是写错了,,,上面才对..."blueforyou"的方法我知道;我是想看看有没有现成的比较函数可用!不过同样谢谢blueforyou 的回复
blueforyou 2009-07-25
  • 打赏
  • 举报
回复
第一个

function myArrayDiff($s,$q){
$d=array();
foreach($q as $qKey=>$qValue){
foreach($s as $sKey=>$sValue){
if($sValue!=$qValue){
if(!in_array($sValue,$d)) $d[]=$sValue;
}else{
unset($s[$sKey]);
}
}
}
return $d;
}
print_r(myArrayDiff($s,$q));

第二个不咋明白你的意思,描述一下你的想法?

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧