foreach ($tests as $test) {
$var = $test['somekey'];
}
echo $var;
如何将foreach的所有值都转换为php变量?它似乎只是拿起最后一个变量
答案 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_r或var_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而不是+=
来做你想做的事情!