执行存储在变量中的数组

问题描述 投票:1回答:1

我将数组存储在变量$ stringPedidos中。我试图将此变量用作$ resp中的数组,但不起作用。

我正在尝试显示一个包含产品名称的键盘,具体取决于从数据库中提取的用户订单ID。 $ stringPedidos变量包含使用PHP在Telegram Bot上显示键盘所需的数组。我想将$ stringPedidos用作数组,问题是$ stringPedidos作为字符串执行。

$query = mysqli_query($conn, "SELECT * FROM pedidos WHERE usuario_id='".$id."'");

      if(mysqli_num_rows($query) > 0){

        $stringPedidos= "array(";

        $query = "SELECT producto_id FROM pedidos WHERE usuario_id='".$id."'";
        $result = mysqli_query($conn, $query) or die(mysqli_error($conn));
        while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
            $producto_id = $row['producto_id'];

                 $queryProductos = "SELECT name FROM productos WHERE id='".$producto_id."'";
                    $resultProductos = mysqli_query($conn, $queryProductos) or die(mysqli_error($conn));
                    while ($rowProductos = mysqli_fetch_array($resultProductos, MYSQLI_BOTH)) {
                        $productoName = $rowProductos["name"];
                          $stringPedidos .= 'array("'.$productoName.'"),';


                                      }

        }

        $stringPedidos .= 'array("Return↩️")';
        $stringPedidos .= ")";


    $resp = array("keyboard" => $stringPedidos,"resize_keyboard" => true,"one_time_keyboard" => true,"remove_keyboard" => true);

}

输出:array(array(“ testProduct”),array(“ testProduct2”),array(“Return↩️”))] >>

输出是正确的,但是它不能作为数组执行,因为它不起作用。

我将数组存储在变量$ stringPedidos中。我试图将此变量用作$ resp中的数组,但是它不起作用。我正在尝试显示一个包含产品名称的键盘,具体取决于...

php mysql arrays eval telegram-bot
1个回答
0
投票

您需要做的是在最后一行之前添加eval("\$newStringPedidos = $stringPedidos;");。这会将您的数组存储在新变量$newStringPedidos中。现在,变量$newStringPedidos实际上是一个数组,而不是字符串,因此您可以在最后一行中使用它,它将起作用。

© www.soinside.com 2019 - 2024. All rights reserved.