将数组中的数据合并为一个变量

时间:2011-04-26 16:02:47

标签: php mysql

我正在尝试将数组中的多个结果合并为一个变量。

$sqlNameForCode = "Select dim_InvoiceRef from dimensions"." Where dim_FileRef = '".$addRow[$FieldName]."'";
$qryNameForCode = mysql_Query($sqlNameForCode);
While($arrNameForCode = mysql_fetch_array($qryNameForCode)) {
    $addRow[$FieldName] = $arrNameForCode['dim_InvoiceRef'];
}

我需要变量$addRow[$FieldName]来包含从数组中取出的所有字段。但是因为它在While循环中,所以只有最后一个字段留在变量中。

示例,查询会提取以下结果

Apple
Banana
Orange

我需要echo $addRow[$FieldName]来显示Apple Banana Orange,此时它恰好等于Orange

任何帮助都会非常感谢!

2 个答案:

答案 0 :(得分:1)

你需要把它变成一个数组

While($arrNameForCode = mysql_fetch_array($qryNameForCode)) {
    $addRow[$FieldName][] = $arrNameForCode['dim_InvoiceRef']; //notice the extra braces
}

echo implode(' ', $addRow[$FieldName]); //prints the values in the array separated by a space

或直接将其分配给字符串

$addRow[$FieldName] = "";//defaults
While($arrNameForCode = mysql_fetch_array($qryNameForCode)) {
    $addRow[$FieldName] .= $arrNameForCode['dim_InvoiceRef']; //string concatenation
}
echo $addRow[$FieldName];

答案 1 :(得分:0)

这是一个基于MySQL的解决方案,您可能会觉得更容易:

$sql = "SELECT GROUP_CONCAT(dim_InvoiceRef SEPARATOR ' ') FROM dimensions WHERE dim_FileRef = '".$field."'";

$query = mysql_query($sql);
$result = mysql_fetch_row($query);

echo $result[0]; // Should show 'Apple Orange Banana' etc.

我冒昧地在你的例子中重命名一些变量,以便更容易理解。除非您需要在程序中稍后使用相同的数据执行不同的操作,否则这应该可行。