3

我需要帮助。我在 smarty 中开发了一个页面,我从查询中得到了一个结果集,我需要将结果集更改为字符串并存储在文本区域中

我的查询如下

select val from test

我的结果集是在控制器的 var_dump 中打印

{ [0]=>  array(1) { ["val"]=>  string(1) "c" } [1]=>  array(1) { ["val"]=>  string(3) "c++" } [2]=>  array(1) { ["val"]=>  string(4) "java" } [3]=>  array(1) { ["val"]=>  string(3) "PHP" } }

我需要改变以刺痛喜欢 c,c++,java,PHP

更改功能仅执行控制器

请帮助我..和thk adv

4

3 回答 3

1

为此使用 foreach。在此处查看更多信息 - http://php.net/manual/en/control-structures.foreach.php

例子 -

$array = Array("333", "222", "111");

foreach($array as $string) {
    echo $string.'<br />';
}

另一种解决方案是使用内爆。

在这里查看更多信息 - http://php.net/manual/en/function.implode.php和一个小例子 -

    $array = Array("333", "222", "111");

    $strings = implode(",", $array); // comma in first quotes are seperator, you can set it also to " " for a single space.

    echo $strings; // In this case it will output 333,222,111 if you would set it to empty space then it would output 333 222 11

编辑:

要写入文件,您必须使用文件函数。

检查此链接 - http://php.net/manual/en/function.file-put-contents.php

例子 -

    // your file
    $file = 'sample.txt';
    $array = Array("333", "222", "111");
    // Add all strings to $content.
    foreach($array as $string) {
        $content .= $string.'<br />';
    }
    // write everything in file
    file_put_contents($file, $content);

建议:

当您编写 SQL 查询时,我建议您现在已经开始学习正确地编写它们,因此它们更易于阅读。

例如,您的查询 -

select val from test

可以改成——

SELECT `val` FROM `test`

这更容易阅读和理解。

于 2012-07-19T10:18:12.277 回答
0

如果您需要使用一些分隔符加入所有数组,请使用 implode。例子:

$arr = array("hi", "peter!", "how", "are", "you");
echo implode(" ", $arr) . "?";

//output
// hi peter! how are you?
于 2012-07-19T10:19:20.567 回答
0

如果你想要一个用逗号分隔的字符串,你必须使用 implode 函数

string implode ( string $glue , array $pieces )

胶水:默认为空字符串。这不是 implode() 的首选用法,因为胶水将是第二个参数,因此将使用错误的原型。pieces:要内爆的字符串数组。

返回一个字符串,其中包含以相同顺序表示的所有数组元素的字符串表示形式,每个元素之间都有粘合字符串。

http://www.php.net/manual/en/function.implode.php

例子

$array = Array("333", "222", "111");
$string = explode(',', $array);

返回

"333,222,111"

如果你想要空格:

$string = explode(' ', $array);

返回

"333 222 111"
于 2012-07-19T10:22:20.417 回答