请教 要求x包含y,x按y排序
程序员文章站
2022-05-16 11:54:14
...
怎么说呢,其实就是要求x包含y,x按y排序
比较x和y两个数组,
如果x长度大于y,则将x数组中多出的键追加到y数组后面
例如:
$x = array(0=>'a', 1=>'b', 2=>'c', 3=>'d', 4=>'e');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(2=>'c', 4=>'e', 0=>'a', 1=>'b', 3=>'d');
如果x长度小于y,则先将y数组中多出的键删除
$x = array(0=>'a', 1=>'b');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(0=>'a', 1=>'b');
第二问不明晰
$x = array(0=>'a', 1=>'b');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(0=>'a', 1=>'b'); //这不就是 $x 吗?
看不出与 $y 有什么关系
比较x和y两个数组,
如果x长度大于y,则将x数组中多出的键追加到y数组后面
例如:
$x = array(0=>'a', 1=>'b', 2=>'c', 3=>'d', 4=>'e');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(2=>'c', 4=>'e', 0=>'a', 1=>'b', 3=>'d');
如果x长度小于y,则先将y数组中多出的键删除
$x = array(0=>'a', 1=>'b');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(0=>'a', 1=>'b');
回复讨论(解决方案)
第一问
$x = array(0=>'a', 1=>'b', 2=>'c', 3=>'d', 4=>'e');$y = array(2=>'c', 4=>'e', 0=>'a');$c = array_diff_key($x, $y);$z = $y + $c;print_r($z);
Array( [2] => c [4] => e [0] => a [1] => b [3] => d)
第二问不明晰
$x = array(0=>'a', 1=>'b');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(0=>'a', 1=>'b'); //这不就是 $x 吗?
看不出与 $y 有什么关系
谢谢。学习了!
差集、交集、并集。。。 我太笨了
$x = array(2=>'c', 4=>'e', 0=>'a');
$y = array(0=>'a', 1=>'b', 3=>'d', 4=>'e');
//要求结果为:array(0=>'a', 4=>'e', 2=>'c');
//先求y x 交集(是yx不是xy)
$jj = array_intersect($y, $x);
//再求x y 差集
$bj = array_diff_key($x, $y);
$z = $jj + $bj;
print_r($z);
上一篇: overflow 属性_html/css_WEB-ITnose
下一篇: PHP打开页面的有关问题