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

foreach のすべての値を php 変数に取得するにはどうすればよいですか? 最後の変数のみをピックアップしているようです。

4

5 に答える 5

2

反復ごとに $var を上書きしています。次のようにドットを使用すると、上書きではなく追加されます。
$var .= $test['somekey'];

于 2013-07-02T22:35:22.680 に答える
1

どうですか:

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

echo implode(" ; ", $data) ;
于 2013-07-02T22:35:24.337 に答える
1

探している答えは、何をしたいかによって異なります。配列が必要な場合は、次を使用します。

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

の代わりに任意の代入演算子+=を使用して、必要なことを行うこともできます。

于 2013-07-02T22:51:55.960 に答える
0

あなたが試すことができます :

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

echo implode(PHP_EOL, $var);
于 2013-07-02T22:39:59.890 に答える
0

最後の変数のみを取得しているようです

これ$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>");
于 2013-07-02T22:46:20.780 に答える