我想从数组a中删除重复值并获取新的arrary b作为答案。但是数组b包含数组a的所有值

时间:2016-02-18 11:44:24

标签: php

我想从数组a中删除重复值并获取没有重复值的新数组b。出了什么问题。 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);

?>

2 个答案:

答案 0 :(得分:1)

  

你应该试试这个

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

答案 1 :(得分:0)

在您的代码中,您需要进行2次更改...

1)运行for $i<count($a)而不是$i<=count($a)的for循环,因为你以零开始$i所以你需要为一个小于count($a) <的计数器运行for循环/ p>

2)它将if(!in_array($a[$i], $b))代替if(!in_array($b,$a[$i])),因为您需要找到已在新数组$a中推送的$b数组元素

所以你的代码将是:

<?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);
?>

如果我的回答有任何不妥之处或者您需要进一步澄清,请告诉我。祝您好运!