【问题标题】:How to add item in array using nested for each loop in php如何使用嵌套在php中的每个循环在数组中添加项目
【发布时间】:2016-05-10 15:13:04
【问题描述】:

我正在尝试从 PHP 中的表创建行对象数组。我正在使用下面的代码来执行此操作,但我没有得到预期的结果。

我想要以下格式:

[{"fName":"apple","fprice":11,"quantity":2},{"dName":"orange","fprice":31,"quantity":6}]

但是使用下面的代码我只得到最后一行最后一列的值:

$query = 'select fname,fprice,imgpath,fdesc,cid from food_data';
$stid = oci_parse($conn, $query);
oci_execute($stid, OCI_DEFAULT);
while ($row = oci_fetch_assoc($stid)) {
    foreach ($row as $key=>$val) {
        //echo $item." <br />";
        $data = array(
            array(''.$key.''=>''.$val.'') );
    }
    //echo "\n";
}

【问题讨论】:

  • foreach 循环期间使用array_push()

标签: php arrays oracle-call-interface


【解决方案1】:

只需获取数组的附加元素[]SELECT 中的所有列都将在那里:

while($data[] = oci_fetch_assoc($stid));

更容易使用oci_fetch_all():

oci_fetch_all($stid, $data, null, null, OCI_FETCHSTATEMENT_BY_ROW);

在这两种情况下,$data 将是一个行数组,这些行是列名和列数据的数组。

【讨论】:

    【解决方案2】:
    $query = 'select fname,fprice,imgpath,fdesc,cid from food_data';
    $stid = oci_parse($conn, $query);
    oci_execute($stid, OCI_DEFAULT);
    $res = array();
    while ($row = oci_fetch_assoc($stid)) {
        $res[] = $row;
    }
    

    之后$res 将包含您想要的内容。

    【讨论】:

    • 我很高兴它有帮助。您可以将答案标记为正确;)
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2016-07-19
    • 2021-06-04
    • 2021-11-24
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多