2016-07-05 7 views
0

これで多くのスレッドを読み込んで試しましたが、それは私のためには機能しません。配列から要素を削除する - PHP

私は2つの配列を持っており、一方を他方に対してチェックしたいと思います。車が$ 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

あなたは、私が回答する@ b0neが最初に答えた... array_diffはそれを行うための最善の方法で、ネイティブPHPの関数である...

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

を試してみました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_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_array = array_intersect($wanted_cars_array, $available_cars_array); 
$wanted_and_available_cars_array = array_values($wanted_and_available_cars_array); 
関連する問題