【问题标题】:Extract string from Array php从数组php中提取字符串
【发布时间】:2014-04-05 18:05:23
【问题描述】:

在我的代码中,我正在执行如下所示的语句:

$welcomeMsg = $result->fetchall(PDO::FETCH_ASSOC);

当我回显 $welcomeMsg 时,我得到了 Array。

然而,这本质上是一个为检索字符串而执行的查询。如何格式化它以便在数组中显示字符串?

【问题讨论】:

  • 数组长什么样? (您可以使用var_dump 显示有关其结构和内容的信息)。
  • fetchall(应该是fetchAll())返回一个数组,而不是一个字符串。它返回一个由 所有 找到的行组成的数组。参数 (PDO::FETCH_ASSOC) 告诉它为每一行返回什么样的数组,在你的例子中是一个关联数组。 $welcomeMsg 实际上是一个二维数组。它看起来像这样:[['field'=>'value'],['field'=>'value2']]。您需要遍历$welcomeMsg 并获取每一行的字段。如果只返回一行,不要使用fetchAll,使用fetch()
  • @RocketHazmat,为什么不使用'fetchAll''的微效率,因为你知道只会返回一行?即不做'fetchAll'有什么好处?是否有时间证明值得做 'fetch' 而不是 'fetchAll'?我很好奇而不是“尴尬”。
  • @RyanVincent:我不担心效率,我想帮助一个看起来很困惑的用户。我认为fetch() 对他来说可能更容易。
  • @RocketHazmat,有道理。我误解了您要解释的内容。

标签: php arrays variables


【解决方案1】:

试试

print_r($welcomeMsg);

查看数组中的内容;

然后使用合适的索引来获取字符串。

【讨论】:

    【解决方案2】:

    使用print_r() -

    $welcomeMsg = $result->fetchAll(PDO::FETCH_ASSOC);
    echo '<!--<pre>'; print_r($welcomeMsg); echo '</pre>-->';
    

    您可以在view source 中查看该数组,因此它也不会干扰您的 html 视图并让您轻松调试。

    对于从数组中提取字符串,您可以使用foreach loop

    foreach($welcomeMsg as $msg)
    {
        $msg[key] = value;
    }
    

    【讨论】:

    • print_r 应该用作调试工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多