0

I want to remove duplicate values from array a and get a new array b without duplicate values. What am doing wrong. HELP!!!

<?php
 $a = array('pasta','vegetables','vegetables','salad','salad');
 $b=array();

   for ($i=0;$i<=count($a);$i++){

     if(!in_array($b,$a[$i])){

      array_push($b,$a[$i]);    
    }
 }
 print_r($b);

?>
rajeev
  • 1
  • 1

2 Answers2

1

You should try this

     $a = array('pasta','vegetables','vegetables','salad','salad');
     echo '<pre>';
     echo 'Array A <br>';
     print_r($a);
     echo '<br> After removing duplicate value  array B<br>';
     $b=array_unique($a);
     print_r($b);

Output :-

Sharma Vikram
  • 2,440
  • 6
  • 23
  • 46
0

In your code you need to make 2 changes...

1) run the for loop for $i<count($a) not $i<=count($a) because you start $i with zero so you need to run the for loop for one counter less than count($a)

2) It will if(!in_array($a[$i], $b)) instead of if(!in_array($b,$a[$i])) because you need to find element of $a array to be already pushed in new array $b or not

So your code will be :

<?php

 $a = array('pasta','vegetables','vegetables','salad','salad');
 $b=array();

   for ($i=0;$i<count($a);$i++){

     if(!in_array($a[$i], $b)){

      array_push($b,$a[$i]);    
    }
 }
 print_r($b);
?>

Let me know if anything wrong in my answer or you need any more clarification... Good luck!

Ashish Raj
  • 488
  • 9
  • 22