排序,拆分,检查数组与嵌套循环PHP


sorting, splitting, checking array with nested loop PHP

我是编程新手,怎么做

$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或逐个检查?
谢谢专家!

使用标准的 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);

而且您不需要任何类型的循环或排序

演示

如果您正在寻找嵌套解决方案,请尝试以下操作:

<?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()将是解决您情况的最简单解决方案。

试试这个:

$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