foreach ($tests as $test) {
$var = $test['somekey'];
}
echo $var;
如何将 foreach 的所有值放入 php 变量中?它似乎只拾取最后一个变量。
foreach ($tests as $test) {
$var = $test['somekey'];
}
echo $var;
如何将 foreach 的所有值放入 php 变量中?它似乎只拾取最后一个变量。
you're overwriting $var on each iteration. with a dot as follows, this will append instead of overwrite.
$var .= $test['somekey'];
How about:
$data = array() ;
foreach ($tests as $test) {
$data[] = $test['somekey'];
}
echo implode(" ; ", $data) ;
您正在寻找的答案取决于您想要做什么。如果您想要一个数组,请使用:
$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);
您也可以使用任何赋值运算符而不是+=
来做任何您想做的事情!
它似乎只拾取最后一个变量
那是因为$var
是一个变量,而不是一个数组。您只是多次覆盖同一个变量:唯一保留的值是最后一个。
在代码中转换$var
为数组。
$var = new array();
然后使用类似的东西array_push
在数组中添加值
foreach ($tests as $test) {
array_push($var, $test['somekey']);
}
最后,您可能想要打印出该值。echo
不是打印数组的理想方式。我建议使用包含在标签中的print_r或var_dump 。<pre>
echo ("<pre>");
var_dump($var);
echo ("</pre>");
你可以试试 :
$var = array_map(function ($v) {
return $v['somekey'];
}, $tests);
echo implode(PHP_EOL, $var);