Преобразовать массив в строку или объект - PullRequest
0 голосов
/ 25 мая 2018

Добрый день, я пытаюсь преобразовать массив "$ 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;
}

?>

С «(объект)» он дает мне следующую ошибку: «Объект класса stdClass не может быть преобразован в строку», с «implode»: «Преобразование массива в строку"and with" 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 );( Преобразовать массив в строку );( Как преобразовать массив в объект в PHP? )

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Мне удалось воспроизвести ошибку «Преобразование массива в строку» при использовании команды implode, выполнив следующую строку кода:

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 или чего-то подобного предоставило бы больше отладочной информации, чтобы лучше диагностировать проблемы вместе с вышеупомянутыми сообщениями об ошибках.Вот как я придумал приведенный выше код.

0 голосов
/ 25 мая 2018

Вы можете использовать json_encode для преобразования массива в строку:

$FINAL_VALUE = json_encode($YOUR_OBJECT);

Для получения дополнительной информации вы можете сослаться по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...