php - 如何: concatenate a php array generated from a mysql query?

标签 php mysql arrays

我正在使用 MYSQL/PHP 开发一个玩家姓名生成器。如何将一列(不包括主键)表的值选择为一维数组,然后将数组的值连接起来?

示例表“syllableInitials”:

characters
t
d
ch

php代码

$syllable = array("","","");

$sql = "SELECT characters FROM syllableInitials";
$result = $conn->query($sql);

$syllableInitials = array();

while ($initial = mysqli_fetch_row($result)) {
    $syllableInitials[] = $initial;
}
$syllableMedials = array("a", "o", "i");
$syllableFinals = array("m","s","d");

$syllable[0] = $syllableInitials[0] . $syllableMedials[2] . $syllableFinals[0];

echo "Syllable is: <b>" . $syllable[0] . "</b>";

我得到的输出是:

注意:数组到字符串的转换在线... 音节是:Arrayim

显然,上面示例代码的预期输出是“tim”而不是“Arrayim”。

syllableInitials 数组的 print_r 生成此...

Array (
     [0] => Array ( [0] => t )
     [1] => Array ( [0] => d ) 
    [2] => Array ( [0] => ch )
)

所以看起来我不知何故无意中嵌套了数组或导致它是二维的!我的编码真的很生疏...提前致谢!

最佳答案

由于 $initial 是一个数组并且只有一个元素,因此您可以执行以下操作:

$syllableInitials[] = $initial[0];

但更好的解决方案是使用 PDO 及其 PDOStatement::fetchColumn功能。

例如:

$syllable = array("","","");

$options = array(
    PDO::ATTR_PERSISTENT => true,
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);

$dbh = new PDO('mysql:dbname=dbname;host=127.0.0.1', 'username', 'password', $options);

$sth = $dbh->prepare('SELECT characters FROM syllableInitials');
$sth->execute();

$syllableInitials = array();

while ($initial = $sth->fetchColumn()) {
    $syllableInitials[] = $initial;
}
$syllableMedials = array("a", "o", "i");
$syllableFinals = array("m","s","d");

$syllable[0] = $syllableInitials[0] . $syllableMedials[2] . $syllableFinals[0];

echo "Syllable is: <b>" . $syllable[0] . "</b>";

关于php - 如何: concatenate a php array generated from a mysql query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53135353/

相关文章:

javascript - 分配数组会导致某些数据出现语法错误

javascript - 如果购物车中的数量发生变化,如何更新价格

php - 列出不在内部联接中的 ID

mysql - 不寻常的连接形式

php - MySQL WHERE IN () + AND , PDO 只返回一行

php - __construct() 和 init() 有什么区别

mysql - 我无法检索 Telerik radgrid 中的列值。

javascript - 使用 javaScript jQuery 对具有属性的关联数组进行排序

javascript - cypress:将数组作为命令行参数传递

Java 字符串值与子字符串后的文本不匹配