PHP注意事项:数组到字符串的转换

PHP注意事项:数组到字符串的转换,php,yii2,Php,Yii2,我想将$result中的所有数据显示到我的表中,但出现了一些错误。 我正在尝试访问一个php数组。但它给我带来了数组到字符串的转换错误。 注意的是数组到字符串的转换 我的控制器: public function actionStockitem() { $datepost = date('Y-m-d'); $d1 = isset($data['d1']) ? $data['d1'] : $datepost; $sql = " SELECT s1.name as nam

我想将$result中的所有数据显示到我的表中,但出现了一些错误。 我正在尝试访问一个php数组。但它给我带来了数组到字符串的转换错误。 注意的是数组到字符串的转换 我的控制器:

 public function actionStockitem() {

    $datepost = date('Y-m-d');
    $d1 = isset($data['d1']) ? $data['d1'] : $datepost;

    $sql = " SELECT s1.name as name          
        FROM
            (SELECT i.item_id,i.name,i.unitcost,
            (SUM(s1.qty)) as stock1,         
            ((SUM(s1.qty))* i.unitcost) as cost1     
             FROM (SELECT item_id,name,unitcost FROM mitem  ) as i
             JOIN mstocklist s1 ON s1.item_id=i.item_id
             JOIN mstock s2 ON s2.id=s1.stock_id
             WHERE s2.receive_date <='$d1'
            GROUP BY i.item_id
            ORDER BY i.name ASC ) s1
          LEFT OUTER JOIN
            (SELECT i.item_id,i.name,i.unitcost,
            (SUM(s1.qty)) as stock2,
            ((SUM(s1.qty))* i.unitcost) as cost2    
            FROM (SELECT item_id,name,unitcost FROM mitem  ) as i
            JOIN msublist s1 ON s1.item_id=i.item_id
            JOIN msub s2 ON s2.id=s1.sub_id
            WHERE s2.receive_date <='$d1'
            GROUP BY i.item_id
            ORDER BY i.name ASC ) s2 ON s2.item_id=s1.item_id 
          WHERE  ((s1.stock1)-IFNULL(s2.stock2,0))<>0
          ORDER BY s1.name,cost1  ASC ";

    $command = Yii::$app->db->createCommand($sql);
    $reader = $command->query();
    $inames = $reader->readAll();

    $temp = array();
    $iname = $inames;

    $temp['name'] = $iname;
    $result[] = $temp;

    return $this->render('stockitem', [
                'inames' => $inames,
                'sql' => $sql,
                'result' => $result,
    ]);
}
这是一种观点:

<tbody>           
        <tr>
            <td>
                <?php
                $i = 1;
                foreach ($result as $data) {
                    ?>
                </td>
            </tr>
            <tr>
                <td align="center"><?php echo $i; ?></td>
                <td align="left" class="style3"><?php echo $data['name']; ?></td>  //error in this line
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>
                <td align="center" class="style3"><?php echo ''; ?></td>

            </tr>
        </tbody>
        <?php
        $i++;
    }
    ?>
请给我一些建议

不必要地将数据推送到阵列内部。readAll以单个数组的形式返回结果,因此只需将其传递给view即可。像这样

    $inames = $reader->readAll();

    // $temp = array();
    //$iname = $inames;

    // $temp['name'] = $iname;
    // $result[] = $temp;

    return $this->render('stockitem', [
                'inames' => $inames,
                'sql' => $sql,
                'result' => $inames,
    ]);

尝试使用print_r在视图文件中打印数据变量,并查看它将打印@Marut phophaniat$data['name']的内容是数组&您不能使用echo命令打印数组。使用print_r$data['name']