【问题标题】:Array to string conversion notice when using implode使用 implode 时数组到字符串的转换注意事项
【发布时间】:2013-10-19 05:18:53
【问题描述】:

我从一个 json 数组中获得了多个字符串,我将它们放入另一个数组中,如下所示:

$myArray = $anotherArray = new array();

if($stringA != ""){
     $myArray[] = $stringA;
}elseif($stringB != ""){
     $myArray[] = $stringB;
} //so on...

我想将所有这些都放在数据库中的单个列中,因此我将字符串推送到 1 个数组中。然后,我使用 implode 转换数组:

if(is_array($myArray)){
    $newString = implode(" ", $myArray);
}

这在我的本地主机上运行良好,但是当我们将文件移动到服务器并通过 cron 运行它时,我收到了数组到字符串转换的通知。

我在同一个文件中对不同的字符串集使用了类似的代码,但没有出现错误,所以我不确定这里发生了什么。

我也尝试在 implode 函数中使用 array_values,如下所示:

$newString = implode(" ", array_values($myArray));

但这也没有用。我不确定这是否意味着什么,但在某些情况下,除了常规文本之外,我还打印了 Array 一词。所以我的问题是,这个错误的可能原因是什么,我该如何解决?

【问题讨论】:

  • 告诉php$myArray[]是数组....在if语句之前写$myArray = array();
  • 我已经包含了它。虽然我不确定这是否会有所作为。我有另一个数组,所以我的声明是这样的: $myArray = $anotherArray = array();
  • $myArray = $anotherArray 这意味着您将$myArray 的值设置为等于$anotherArray

标签: php arrays json


【解决方案1】:

你可以只对你的数组进行 json_encode 编码吗?

$newString  = json_encode($myArray);

而且该通知可能是因为您的字符串之一可能是一个数组,您可能在 localhost 上看不到它,因为您不能在 php.ini 中打开错误报告。

尝试将此添加到您的 cron 作业脚本中。

ini_set('display_errors','On');
error_reporting(E_ALL);

【讨论】:

  • 非常感谢。我一直在试图弄清楚几个小时。我打开了原始的 json 数组,发现我试图传递给数组的字符串之一也是一个数组,所以我得到了错误。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2014-11-13
  • 2013-07-02
  • 2023-03-06
  • 2015-10-08
  • 2017-08-11
  • 2013-04-18
  • 1970-01-01
相关资源
最近更新 更多