如何将结果集数组拆分为php中的字符串

时间:2012-07-19 10:15:18

标签: php mysql smarty

我需要帮助。我在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

这样的刺痛

更改功能仅执行控制器

请帮助我......然后帮助

3 个答案:

答案 0 :(得分: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`

这很容易阅读和理解。

答案 1 :(得分:0)

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

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

//output
// hi peter! how are you?

答案 2 :(得分:0)

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

string implode ( string $glue , array $pieces )
  

glue:默认为空字符串。这不是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"