2013-07-02 56 views
0
foreach ($tests as $test) { 
    $var = $test['somekey']; 
} 
echo $var; 

如何获取一个foreach的所有值到php变量中?它似乎在拾取最后一个变量我如何获得一个foreach的所有值到php变量?

+0

“进入”到底如何?把它们放入数组中? 'array_column'。 – Jon

+0

真的不清楚。可能会爆炸,或$测试我是你以后的事情。你能解释更多吗? (或只是“回声”的东西了,看看是什么) – Robbie

回答

1

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

+0

是的。而已。谢谢。我忘记 –

+0

你应该然后标记答案正确 – Saturnix

+0

我该如何做一个条件来检查数组中的最后一项? –

0

如何:

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

echo implode(" ; ", $data) ; 
0

你可以试试:

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

echo implode(PHP_EOL, $var); 
0

它似乎是捡了最后一个变量只

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

$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>"); 
0

你正在寻找的答案取决于你想做什么。 如果你想为一个数组,使用方法:

$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而不是+=来做任何你想做的事!

相关问题