使用嵌套循环PHP对数组进行排序,拆分和检查

时间:2016-03-14 15:25:01

标签: php arrays loops sorting

我在编程方面很新,怎么做

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

3 个答案:

答案 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);

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

Demo

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