2

我有一个 mysql 提取,它使用数据库中的列填充关联数组。列名称之一是 AMOUNT。所以它看起来像这样:

Array ( [0] => Array ( [ID] => 259 [YEARMONTH] => 201105 [AMOUNT] => 54 [VALUE] => 12 ) [1] => Array ( [ID] => 259 [YEARMONTH] => 201106 [AMOUNT] => 32 [VALUE] => 34 ) )

我想做的就是像这样回显数量:

54,32

这样我就没有尾随或标题逗号。

对此有什么优雅的解决方案的建议吗?谢谢 !

4

3 回答 3

5

前提条件

  • $array包含所有行的数组。

代码

foreach ($array as $row) {

    $newArray[] = $row['AMOUNT']; //Add it to the new array

}
echo implode(',',$newArray); //Implode the array and echo it out.

如果您使用的是 PHP 5.3+,则以下内容也适用:

echo implode(",",array_map(function($a) { return $a["AMOUNT"]; }, $array));

由 Mearlyn 提供

更多的

  • implode- 接受一个数组和一个分隔符,并返回一个由“分隔符”分隔的数组值组成的字符串。
于 2011-10-16T10:34:27.937 回答
1

首先制作一个包含所有金额的数组,然后implode是结果。

于 2011-10-16T10:33:41.903 回答
1

使用尾随或标题逗号,然后使用http://php.net/manual/en/function.rtrim.php(或分别为http://php.net/manual/en/function.ltrim.php

代码

$a = '';
foreach ($test as $t)
    $a .= $t['AMOUNT'] . ',';
$result = rtrim($a, ',');

备择方案

内爆的方法也是正确的,但我的解决方案更快。

表现

在具有 10000000 次运行的 2 个成员阵列上进行了测试。

Truth 建议的解决方案需要 171 秒才能运行,Mearlyn 建议的解决方案需要 358 秒!秒运行,我的解决方案只需要 18 秒!

我使用 pastebin.com/fKbxfpy1 来获得提及的时间......

于 2011-10-16T10:34:21.917 回答