将数组转换为字符串或对象

时间:2018-05-25 07:37:16

标签: php arrays string

美好的一天,我正在尝试将数组“$ list”转换为字符串或对象。我使用了以下方法:

<?php

include "medclass.php";

session_start();
if (isset($_SESSION['mail'])) 
{
    $list = $_SESSION['basket'];
}
else
header("location: clientsigninpage.php?msg= Log-in First");

$obj = new med_class;
$obj->connectdb();

$val = implode(";",$list);    //implode method
$val = (object) $list;        //object method
$val = serialize($list);      //serialize method

$result = $obj->searchMed($val);

while ($row = $result->fetchObject()) 
{
  echo $row->MedPrice;
}

?>

使用“(object)”它给出了以下错误:“类stdClass的对象无法转换为字符串”,带有“implode”:“Array to string conversion”和“serialize()”它不打印任何东西。

我传递的值是:

function searchMed($v1)
    {
        $sql = "select * from storepreview where MedName = '$v1'";
        $ret = $this->con->query($sql);
        return $ret;
    }

我通过以下链接使用了这些方法:(http://www.dyn-web.com/php/arrays/convert.php); (Convert an array to a string); (How to convert an array to object in PHP?

2 个答案:

答案 0 :(得分:0)

您可以使用 json_encode 将Array转换为String:

$FINAL_VALUE = json_encode($YOUR_OBJECT);

有关详细信息,请参阅this link

答案 1 :(得分:0)

我设法将你的&#34;数组重现为字符串转换&#34;通过运行以下代码行使用implode(";", [[]]); // PHP Notice: Array to string conversion in php shell code on line 1 命令时出错:

foreach

为了将嵌套数组转换为字符串,我发现$nestedArray = ['outerKeyOne' => ['innerKeyOne' => 'valueOne'], 'outerKeyTwo' => ['innerKeyTwo' => 'valueTwo']]; $arrayOfStrings = []; foreach ($nestedArray as $key => $value) { $arrayOfStrings[] = implode(",", $value); } implode(";", $arrayOfStrings); // string(17) "valueOne;valueTwo" 循环有效:

$val = (object) $list;

与行$sql关联的第二个错误是尝试将对象嵌入__toString()字符串。看起来这里的对象不是你想要的,除非它是一个实现了var_dump方法的对象。

我希望这有一些帮助。使用String queryStr = "insert into table1 (field1, field2) values(?, ?);" try { PreparedStatement preparedStatement = conn.prepareStatement(queryStr); preparedStatement.setString(1, "aa@gmail.com"); preparedStatement.setString(2, "f2 value"); preparedStatement.executeUpdate(); } catch (SQLException e) { // Error } finally { if (preparedStatement != null) { preparedStatement.close(); } if (conn != null) { conn.close(); } } 或类似的东西会提供更多的调试输出,以便更好地诊断问题以及上述错误消息。这就是我如何提出上述代码的。