我在编程方面很新,怎么做
$array={a,b,c,d,e,f}
if $x={a,b,c} -> $y={d,e,f}
if $x={d,e,f} -> $y={a,b,c}
if $x={d,f,a} -> $y={b,c,e}
如何使用嵌套循环制作$ y,或者逐个检查? 谢谢你的专家!
答案 0 :(得分:2)
使用标准PHP函数array_diff(),您可以执行以下操作:
$array = ['a','b','c','d','e','f'];
$x = ['a','b','c'];
$y = array_diff($array, $x);
var_dump($x, $y);
$x = ['d','e','f'];
$y = array_diff($array, $x);
var_dump($x, $y);
$x = ['d','f','a'];
$y = array_diff($array, $x);
var_dump($x, $y);
并且您不需要任何类型的循环或排序
答案 1 :(得分:0)
试试这个:
$array= array(a, b, c, d, e, f);
$x = array(a, b, c);
$y = array_diff($array, $x);
echo "<pre>";
print_r($y); // Shows (d, e, f)
$x = array(d, e, f);
$y = array_diff($array, $x);
echo "<pre>";
print_r($y); // Shows (a, b, c)
$x = array(d, f, a);
$y = array_diff($array, $x);
echo "<pre>";
print_r($y); // Shows (b, c, e)
希望这有帮助。
和平!的xD
答案 2 :(得分:0)
如果您正在寻找嵌套解决方案,请尝试以下方法:
<?php
$array = array('a','b','c','d','e','f');
function get_what_is_left ($input){
$count = 0;
for ($i = 0; $i < sizeof($array); $i++){
$exist = false;
for($j = 0; $j < sizeof($input); $j++){
if($array[$i] == $input[$j]){
$exist = true;
break;
}
}
if(!$exist){
$y[$count] = $array[$i];
$count++;
}
}
return $y;
}
/** You can change the array content as you wish **/
$x = array('a','b','c');
/** You get the result by calling the function **/
$y = get_what_is_left($x);
array_diff()
将是您案件的最简单解决方案。