【问题标题】:array to string conversion return error of stdClassstdClass 的数组到字符串转换返回错误
【发布时间】:2014-06-10 15:47:31
【问题描述】:
    if($stmt->execute()){
        $user = $stmt->get_result();
        while ($obj = $user->fetch_object()) {
             $result[] = $obj;
        }
    }

$result1encoded = json_encode($result);
echo $result1encoded;
// [{"uId":"1","firstName":"John"}]

我这样使用内爆:

    echo $result1encoded = implode(' ',$result1);
// expecting '[{"uId":"1","firstName":"John"}]'

但它说

Object of class stdClass could not be converted to string 

【问题讨论】:

  • $result1 是对象数组。因此,由于数组元素在这里是对象,它们不能转换为字符串。 implode 需要字符串元素。
  • 当您已经使用json_encode 获得结果时,为什么还要使用implode
  • 你能发一下print_r($result);吗?
  • @ShankarDamodaran 数组 ([0] => stdClass 对象 ([uId] => 1 [firstName] => John ))
  • @user3522462,您检查以下答案了吗?

标签: php json type-conversion


【解决方案1】:

您可以使用array_map("json_encode", $your_array)先将数组的每个元素转换为字符串,然后使用implode将它们粘合在一起。

看到这个https://eval.in/141541

<?php

$a = array();

$a[0]  = new stdClass();
$a[0]->uId = "1";
$a[0]->firstName = "John";

$a[1]  = new stdClass();
$a[1]->uId = "2";
$a[1]->firstName = "Albert";

$b = array_map("json_encode", $a);
echo implode(' ', $b);

?>

【讨论】:

    【解决方案2】:

    要将数组转换为字符串,您可以使用serialize() 这样的方法

    $result1encoded = json_encode($result);
    
    echo serialize($result1encoded);
    

    另一种方法是

     $result1encoded = json_encode($result);
    
    echo $result1 = implode(' ',$result1encoded);
    
    
    |**Edited Part**|
    

    请通过流动链接希望它解决你的问题 Array to String Conversions

    【讨论】:

    • 你的第一个解决方案我前面有类似 s59 的东西。您的第二个建议无效。
    • 浏览我现在编辑的那个链接我希望你能解决你的解决方案谢谢
    • 我做到了,我用我使用的第二种方法得到了流出,就像这样echo $result1 = implode(" ", $result1encoded);,输出是[{"id":"1","ProductType":"iPhone"},{"id":"2","ProductType":"iPad"},{"id":"3","ProductType":"iMac"},{"id":"4","ProductType":"Accessories"}]
    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 2012-07-15
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 2013-08-24
    相关资源
    最近更新 更多