Heim >Backend-Entwicklung >PHP-Tutorial >请教 要求x包含y,x按y排序

请教 要求x包含y,x按y排序

WBOY
WBOYOriginal
2016-06-23 14:38:131284Durchsuche

怎么说呢,其实就是要求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', 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);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php如何进行权限管理Nächster Artikel:mysql的排序问题