【问题标题】:Adding arrays to a php variable将数组添加到 php 变量
【发布时间】:2017-05-19 05:10:11
【问题描述】:

我正在使用 PDO 从我的数据库中选择一些值。
对于我的 $teachArray 的每次迭代,我将选定的数组存储到我的 $language_id 变量中。
然后,我删除了 $language_id 中的所有空数组并将其分配给我的 $NoEmptyArray_language_id
但是,我只将 $language_id 中的最后一个数组存储在 $NoEmptyArray_language_id 中。

我想将 $language_id 中的每个数组连接成 $NoEmptyArray_language_id。

我不能使用$NoEmptyArray_language_id .= $language_id;,因为它会给我一个错误:数组到字符串的转换

这是我的简单查询。

$sqlFindId = "SELECT language_id
              FROM language_skill
              WHERE person_id = :person_id AND language_learning = :language_learning AND language_id = :language_id";

             $NoEmptyArray_language_id = "";
                foreach ($teachArray as $dataTeach)
                {
                    $query = $handler->prepare($sqlFindUser);
                    $query->bindValue(':person_id', $_SESSION['person_id']);
                    $query->bindValue(':language_learning', 1);
                    $query->bindValue(':language_id', $dataTeach);
                    $query->execute();
                    $language_id = $query->fetchAll(PDO::FETCH_COLUMN, 0);
                    if ( count( $language_id ) != 0 ) {
                        $NoEmptyArray_language_id .= $language_id;

                    }

                }
                print_r($NoEmptyArray_language_id);

【问题讨论】:

  • 听起来很混乱。也许告诉我们你的最终目标是什么。
  • 我只想将 $language_id 中的值添加到 $NoEmptyArray_language_id
  • 这听起来像是JOIN 的候选对象,因此您不必执行“N+1”加载,每次都通过某个循环猛击查询。

标签: php mysql arrays pdo


【解决方案1】:

你必须定义$NoEmptyArray_language_id = array();

也可以用$NoEmptyArray_language_id[] = $language_id;修改代码

现在你有一个数组,其值为 $NoEmptyArray_language_id。

如果要获取字符串,请使用 implode 函数将此数组转换为字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    相关资源
    最近更新 更多