php foreach循环尽量不复制数组

时间:2013-07-12 09:48:43

标签: php

有没有办法不复制foreach loop中的特定数组? 这是代码

<?php

    $letters = array("A","B","B","C");

      foreach ($letters as $char){
        if ($char == "B") {
          continue; 
        }
        echo $char;
      }

?>

我希望我的输出仅为ABC而不是AC

3 个答案:

答案 0 :(得分:2)

您可以先删除非唯一元素:

foreach(array_unique($letters) AS $char)

答案 1 :(得分:0)

尝试

<?php

$letters = array("A","B","B","C");
  $letters = array_unique($letters);
  foreach ($letters as $char){        
       echo $char;
  }
?>

答案 2 :(得分:0)

复制数组使用

$a = array("A","B","B","C");
$b = array_unique($a); // $b will be a different array with unique values

没有必要使用foreach。在PHP中,默认情况下,变量不是通过引用分配的,而是通过值分配的,除非您使用&运算符。

另一种方法是使用array_merge()

$a = array("A","B","B","C");
$b = array();
$b = array_merge(array_unique($a), $b);

在这两种情况下,结果都是A B C