简体   繁体   English

从数组中删除元素-PHP

[英]Removing An Element From An Array - PHP

I have read and tried the many threads on this - but it doesn't work for me. 我已经阅读并尝试了许多线程-但对我而言不起作用。

I have two arrays, and want to check one against the other. 我有两个数组,想与另一个检查一个。 If a car is listed in the $available_cars_array I want to remove it from the $wanted_cars_array so its not found a second time. 如果汽车在$ available_cars_array中列出,我想将其从$ wanted_cars_array中删除,以便第二次找不到。

#Create the arrays

 $available_cars_array = array("Volvo", "BMW", "Ford", "Toyota", "Ford", "Jaguar", "Alfa", "Reliant", "Bubble", "Ford");
 $wanted_cars_array = array("Ford", "Vauxhall", "Nissan", "Datsun","Kia", "Hyundai");
 #Get the size of the array
 $arrlength = count($available_cars_array);

 check_if_wanted($available_cars_array, $wanted_cars_array);

    function check_if_wanted($available_cars_array, $wanted_cars_array)
    {
       #Check in for cars in the $available_cars_array

       foreach ($available_cars_array as $available)
        {
                foreach ($wanted_cars_array as $wanted)
                {
                    if (stripos($available, $wanted) !== false)  
                        {

                             unset($wanted_cars_array[$wanted]); #Remove wanted car from wanted cars array
                             echo "Found $wanted </br>";

                        } 
                }   
        } 

    }

Just use array_diff 只需使用array_diff

<?php
    $wanted_cars_array = array_diff($wanted_cars_array, $available_cars_array);

Have you tried 你有没有尝试过

//returns an array containing the elements from the first array that are not found in the second array
$wantedCars = array_diff($wanted_cars_array, $available_cars_array);
foreach($wantedCars as $wantedCar)
{
echo "Found $wantedCar </br>";
}

I am too slow editing the answer @b0ne answered first... array_diff is the best way to do it, being a native PHP function... 我太慢地编辑答案@ b0ne首先回答... array_diff是最好的方法,它是本机PHP函数...

Use array_intersect and array_diff . 使用array_intersectarray_diff

$available_cars_array = array("Volvo", "BMW", "Ford", "Toyota", "Ford", "Jaguar", "Alfa", "Reliant", "Bubble", "Ford");
$wanted_cars_array = array("Ford", "Vauxhall", "Nissan", "Datsun","Kia", "Hyundai");
// get common elements
$commonElements = array_intersect($available_cars_array,$wanted_cars_array);
// removed matched elements from wanted_cars_array
$new_wanted_cars_array = array_diff($wanted_cars_array, $commonElements); 

用这个 :

$union_cars=array_unique(array_merge($available_cars_array, $wanted_cars_array));  

If you want to compare the cars in this array: 如果要比较此阵列中的汽车:

 $wanted_cars_array = array("Ford", "Vauxhall", "Nissan", "Datsun","Kia", "Hyundai");

to the cars in this array: 到此阵列中的汽车:

 $available_cars_array = array("Volvo", "BMW", "Ford", "Toyota", "Ford", "Jaguar", "Alfa", "Reliant", "Bubble", "Ford");

Simply use: 只需使用:

Wanted but Unavailable Cars 想要但不可用的汽车

$wanted_but_unavailable_cars_array = array_diff($wanted_cars_array, $available_cars_array);
$wanted_but_unavailable_cars_array = array_values($wanted_but_unavailable_cars_array);

Wanted and Available Cars 求购车

$wanted_and_available_cars_array = array_intersect($wanted_cars_array, $available_cars_array);
$wanted_and_available_cars_array = array_values($wanted_and_available_cars_array);

Try this: 尝试这个:

$available_cars_array = array("Volvo", "BMW", "Ford", "Toyota", "Ford", "Jaguar", "Alfa", "Reliant", "Bubble", "Ford");
$wanted_cars_array = array("Ford", "Vauxhall", "Nissan", "Datsun","Kia", "Hyundai");

#Get the size of the array
$arrlength = count($available_cars_array);

$wanted_cars_array1 = check_if_wanted($available_cars_array, $wanted_cars_array);
echo '<pre>'; print_r($wanted_cars_array1); exit;

function check_if_wanted($available_cars_array, $wanted_cars_array)
{
    #Check in for cars in the $available_cars_array

    foreach ($available_cars_array as $available)
    {
        foreach ($wanted_cars_array as $key => $wanted)
        {
            if ($available == $wanted)
            {

                echo "Found $wanted </br>";
                unset($wanted_cars_array[$key]); #Remove wanted car from wanted cars array

            }
        }
    }

    return $wanted_cars_array;

}

Note: This is your way of getting the result what you want. 注意:这是获得所需结果的方法。 Please refer @Ravi Hirani's solution. 请参考@Ravi Hirani的解决方案。 That one would be best :). 那将是最好的:)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM