如何将foreach的所有值都转换为php变量?

时间:2013-07-02 22:32:56

标签: php

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

如何将foreach的所有值都转换为php变量?它似乎只是拿起最后一个变量

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

怎么样:

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

echo implode(" ; ", $data) ;

答案 2 :(得分:0)

您可以尝试:

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

echo implode(PHP_EOL, $var);

答案 3 :(得分:0)

  

似乎只是拿起最后一个变量

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

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

$var = new array();

然后使用array_push之类的内容在数组中添加值

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

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

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

答案 4 :(得分:0)

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

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

如果你有PHP版本&gt; = 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而不是+=来做你想做的事情!