2016-07-05 3 views
0

Я прочитал и попробовал много потоков на этом - но это не работает для меня.Удаление элемента из массива - PHP

У меня есть два массива, и вы хотите проверить один на другой. Если автомобиль указан в файле $ 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>"; 

         } 
       } 
     } 

    } 

ответ

0

Просто используйте array_diff

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

Попробуйте это:

$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; 

} 

Примечание: Это ваш способ получить результат, что вы хотите. Пожалуйста, обратитесь к решению @ Ravi Hirani. Это было бы лучше :).

+0

Спасибо всем за быстрый и подробные ответы. Много работать. – Mesogi

0

Вы пробовали

//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>"; 
} 

Я слишком медленно редактирование ответ @ b0ne ответил первый ... array_diff это лучший способ сделать это, будучи уроженцем функции PHP ...

0

Использования array_intersect и array_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); 
0

Используйте это:

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

Если вы хотите сравнить автомобили в этом массиве:

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

к машинам в этом массиве:

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

Просто использование:

Wanted но Недоступные Автомобили

$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 и доступные автомобили

$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); 
Смежные вопросы