请问这样的2个数组怎么求差集,并返回

月如枫 2018-09-28 03:32:07
2个二维数组 怎么才能求出差集
array(10) {
[0] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(4) "0.00"
["k_stock"] => string(1) "0"
["k_sku_id"] => string(13) "3146716485077"
}
[1] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(4) "0.00"
["k_stock"] => string(1) "0"
["k_sku_id"] => string(13) "3184917563105"
}
[2] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(4) "0.00"
["k_stock"] => string(1) "0"
["k_sku_id"] => string(13) "3146716485075"
}
[3] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(5) "17.80"
["k_stock"] => string(2) "12"
["k_sku_id"] => string(13) "3146716485085"
}
[4] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(5) "17.80"
["k_stock"] => string(1) "8"
["k_sku_id"] => string(13) "3146716485083"
}
[5] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(4) "0.00"
["k_stock"] => string(1) "0"
["k_sku_id"] => string(13) "3146716485073"
}
[6] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(4) "0.00"
["k_stock"] => string(1) "0"
["k_sku_id"] => string(13) "3146716485086"
}
[7] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(5) "17.80"
["k_stock"] => string(2) "16"
["k_sku_id"] => string(13) "3146716485081"
}
[8] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(5) "17.80"
["k_stock"] => string(2) "52"
["k_sku_id"] => string(13) "3146716485087"
}
[9] => array(4) {
["k_pid"] => string(1) "7"
["k_prices"] => string(4) "0.00"
["k_stock"] => string(1) "0"
["k_sku_id"] => string(13) "3146716485078"
}
}


array(11) {
[0] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3146716485079"
}
[1] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3146716485086"
}
[2] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3146716485073"
}
[3] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(5) "17.80"
["kl_stock"] => string(1) "8"
["kl_sku_id"] => string(13) "3146716485083"
}
[4] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(5) "17.80"
["kl_stock"] => string(2) "12"
["kl_sku_id"] => string(13) "3146716485085"
}
[5] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3146716485075"
}
[6] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3184917563105"
}
[7] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3146716485077"
}
[8] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(5) "17.80"
["kl_stock"] => string(2) "16"
["kl_sku_id"] => string(13) "3146716485081"
}
[9] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(5) "17.80"
["kl_stock"] => string(2) "52"
["kl_sku_id"] => string(13) "3146716485087"
}
[10] => array(4) {
["kl_pid"] => string(1) "7"
["kl_prices"] => string(4) "0.00"
["kl_stock"] => string(1) "0"
["kl_sku_id"] => string(13) "3146716485078"
}
}
...全文
214 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
月如枫 2018-09-28
  • 打赏
  • 举报
回复
谢谢,终于解决了!!
xuzuning 2018-09-28
  • 打赏
  • 举报
回复
按说子集的键不同是不能比较的(找不到对应关系)
不过对于你的示例数据,可以这样
$a = array(
0 => array(
"k_pid" => "7",
"k_prices" => "0.00",
"k_stock" => "0",
"k_sku_id" => "3146716485077",
),
1 => array(
"k_pid" => "7",
"k_prices" => "0.00",
"k_stock" => "0",
"k_sku_id" => "3184917563105",
),
2 => array(
"k_pid" => "7",
"k_prices" => "0.00",
"k_stock" => "0",
"k_sku_id" => "3146716485075",
),
3 => array(
"k_pid" => "7",
"k_prices" => "17.80",
"k_stock" => "12",
"k_sku_id" => "3146716485085",
),
4 => array(
"k_pid" => "7",
"k_prices" => "17.80",
"k_stock" => "8",
"k_sku_id" => "3146716485083",
),
5 => array(
"k_pid" => "7",
"k_prices" => "0.00",
"k_stock" => "0",
"k_sku_id" => "3146716485073",
),
6 => array(
"k_pid" => "7",
"k_prices" => "0.00",
"k_stock" => "0",
"k_sku_id" => "3146716485086",
),
7 => array(
"k_pid" => "7",
"k_prices" => "17.80",
"k_stock" => "16",
"k_sku_id" => "3146716485081",
),
8 => array(
"k_pid" => "7",
"k_prices" => "17.80",
"k_stock" => "52",
"k_sku_id" => "3146716485087",
),
9 => array(
"k_pid" => "7",
"k_prices" => "0.00",
"k_stock" => "0",
"k_sku_id" => "3146716485078",
),
);

$b = array(
0 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3146716485079",
),
1 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3146716485086",
),
2 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3146716485073",
),
3 => array(
"kl_pid" => "7",
"kl_prices" => "17.80",
"kl_stock" => "8",
"kl_sku_id" => "3146716485083",
),
4 => array(
"kl_pid" => "7",
"kl_prices" => "17.80",
"kl_stock" => "12",
"kl_sku_id" => "3146716485085",
),
5 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3146716485075",
),
6 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3184917563105",
),
7 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3146716485077",
),
8 => array(
"kl_pid" => "7",
"kl_prices" => "17.80",
"kl_stock" => "16",
"kl_sku_id" => "3146716485081",
),
9 => array(
"kl_pid" => "7",
"kl_prices" => "17.80",
"kl_stock" => "52",
"kl_sku_id" => "3146716485087",
),
10 => array(
"kl_pid" => "7",
"kl_prices" => "0.00",
"kl_stock" => "0",
"kl_sku_id" => "3146716485078",
),
);
foreach($a as $k1=>$s) {
foreach($b as $k2=>$v)
if(array_values($s) == array_values($v)) {
unset($b[$k2]);
unset($a[$k1]);
}
}
$r = array_merge($a, $b);
print_r($r);

Array
(
[0] => Array
(
[kl_pid] => 7
[kl_prices] => 0.00
[kl_stock] => 0
[kl_sku_id] => 3146716485079
)

)

array_change_key_case -- 返回字符串键名全为小写或大写的数组 array_chunk -- 将一个数组分割成多个 array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_count_values -- 统计数组中所有的值出现的次数 array_diff_assoc -- 带索引检查计算数组差集 array_diff_key -- 使用键名比较计算数组差集 array_diff_uassoc -- 用用户提供的回调函数做索引检查来计算数组差集 array_diff_ukey -- 用回调函数对键名比较计算数组差集 array_diff -- 计算数组差集 array_fill -- 用给定的值填充数组 array_filter -- 用回调函数过滤数组中的单元 array_flip -- 交换数组中的键和值 array_intersect_assoc -- 带索引检查计算数组的交集 array_intersect_key -- 使用键名比较计算数组的交集 array_intersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较索引 array_intersect_ukey -- 用回调函数比较键名来计算数组的交集 array_intersect -- 计算数组的交集 array_key_exists -- 检查给定的键名或索引是否存在于数组中 array_keys -- 返回数组中所有的键名 array_map -- 将回调函数作用到给定数组的单元上 array_merge_recursive -- 递归地合并一个或多个数组 array_merge -- 合并一个或多个数组 array_multisort -- 对多个数组或多维数组进行排序 array_pad -- 用值将数组填补到指定长度 array_pop -- 将数组最后一个单元弹出(出栈) array_product -- 计算数组中所有值的乘积

21,886

社区成员

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

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