【问题标题】:How do I get all values of a foreach into a PHP variable? [duplicate]如何将 foreach 的所有值放入 PHP 变量中? [复制]
【发布时间】:2013-07-02 22:32:56
【问题描述】:
foreach ($tests as $test) {
  $var = $test['somekey'];
}
echo $var;

如何将 foreach 的所有值放入 php 变量中?它似乎只拾取最后一个变量。

【问题讨论】:

  • “进入”究竟如何?将它们放入数组中? array_column.
  • 真的不清楚。可能是内爆,或者 $test 我是你所追求的。你能解释更多吗? (或者只是“回显”的东西,看看是什么)

标签: php


【解决方案1】:

怎么样:

$data = array() ;
foreach ($tests as $test) {
  $data[] = $test['somekey'];
}

echo implode(" ; ", $data) ;

【讨论】:

    【解决方案2】:

    您正在寻找的答案取决于您希望做什么。 如果你想要一个数组,请使用:

    $var = array();
    foreach ($tests as $test) {
        $var[] = $test['somekey'];
    }
    print_r($var); 
    

    或者如果您的 PHP 版本 >= 5.5.0,您可以使用:

    $var = array_column($tests, $test);
    

    如果你想要一个字符串,使用:

    $var = "";
    foreach ($tests as $test) {
        $var .= $test['somekey'];
    }
    print_r($var);
    

    如果您想要一个数字,请使用:

    $var = 0;
    foreach ($tests as $test) {
        $var += $test['somekey'];
    }
    print_r($var);  
    

    您也可以使用任何Assignment Operators 代替+= 来做任何您想做的事情!

    【讨论】:

    • 一个简单的答案拯救了我的一天。谢谢!!太棒了,数组 [] 括号是我需要的
    【解决方案3】:

    您在每次迭代时都会覆盖 $var。如下所示,这将追加而不是覆盖。
    $var .= $test['somekey'];

    【讨论】:

    • 是的。而已。谢谢。我忘记了
    • 你应该将答案标记为正确
    • 如何进行条件检查以检查数组中的最后一项?
    • 您可以获取数组大小并与迭代计数器进行比较。 $count = count($tests); $i = 0; foreach ($tests as $test) { $i++; if ($i == $count) { # last element }
    【解决方案4】:

    你可以试试:

    $var = array_map(function ($v) {
        return $v['somekey'];
    }, $tests);
    
    echo implode(PHP_EOL, $var);
    

    【讨论】:

      【解决方案5】:

      它似乎只拾取最后一个变量

      那是因为$var 是一个变量,而不是一个数组。您只是多次覆盖同一个变量:唯一保留的值是最后一个。

      $var 转换为代码中的数组。

      $var = new array();
      

      然后使用 array_push 之类的东西将值添加到数组中

      foreach ($tests as $test) {
        array_push($var, $test['somekey']);
      }
      

      最后,您可能想要打印出该值。 echo 不是打印数组的理想方式。我建议使用 print_rvar_dump 括在 <pre> 标签中。

      echo ("<pre>");
      var_dump($var);
      echo ("</pre>");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-01
        • 1970-01-01
        • 2020-02-14
        • 2018-05-14
        • 1970-01-01
        相关资源
        最近更新 更多