【问题标题】:php foreach Loop try not to copy a array [duplicate]php foreach循环尝试不复制数组[重复]
【发布时间】:2013-07-10 19:54:17
【问题描述】:

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

<?php

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

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

?>

我希望我的输出只有ABC 而不是AC

【问题讨论】:

  • 你的意思是array_unique吗?
  • 我的建议:去阅读手册,阅读一本好书并练习。为了不让我的评论“空”:echo implode(array_unique($letters));

标签: php


【解决方案1】:

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

foreach(array_unique($letters) AS $char)

【讨论】:

  • 我认为使用循环没有任何意义。
【解决方案2】:

复制数组使用

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

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

另一种方式是使用array_merge()

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

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

【讨论】:

    【解决方案3】:

    试试看

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

    【讨论】:

    • 另外,array_unique($letters) 应该是 $letters = array_unique($letters); $letters 不是sort($letters) 那样通过引用传递。 php.net/manual/en/function.array-unique.php
    • 对不起,只是一个错字...忘记放分配
    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 2021-12-20
    • 2015-09-21
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多