如何在PHP的数组中构建数组

玛丽·马修(Tince Mary Mathew)

这是我的模型:

function item_attributes_data($id){
    $query=$this->db->query("SELECT       attributes.attribute_text,item_attributes.attr_value,item_attributes.cost
    FROM attributes
    INNER JOIN item_attributes
    ON attributes.id=item_attributes.attr_id
    where item_attributes.item_id=".$id);

    return $query->result();
}

这是我的控制器:

function item_attributes()
{
    header('Access-Control-Allow-Origin:*');
    $id=$this->uri->segment(3);
    $this->load->model('orderapp_model');
    $query_result=$this->orderapp_model->item_attributes_data($id);
    echo json_encode($query_result);
}

我检索数据为

url=localhost/ordertakeadmin/index.php/orderapp/item_attributes/

我得到了JSON数组,如下所示:

options = [{
    "attribute_text": "VEHICLE",
    "attr_value": "Truck",
    "cost": "897.00"
}, {
    "attribute_text": "MATERIAL",
    "attr_value": "Steel",
    "cost": "385.00"
}, {
    "attribute_text": "SIZE",
    "attr_value": "Medium",
    "cost": "254.00"
}]

但是我想将数据构建为

options = [{
    attribute_text: "SIZE",
    choices: [{
        attr_value: "Medium",
        cost: 254.00
    }, {
        attr_value: "Small",
        cost: 154.00
    }, {
        attr_value: "Large",
        cost: 280.00
    }]
}, {
    attribute_text: "MATERIAL",
    choices: [{
        attr_value: "Steel",
        cost: 385.00
    }, {
        attr_value: "Carbon Fiber",
        cost: 285.00
    }, ]
}, {
    attribute_text: "VEHICLE",
    choices: [{
        attr_value: "Truck",
        cost: 897.00
    }, {
        attr_value: "Car",
        cost: 122.00
    }]
}];

这是我的数据库:attribute_text attr_value成本
SIZE大1500.00车辆卡车897.00材料钢385.00尺寸中254.00车辆汽车855.00车辆吉普车875.00材料铅897.00

这怎么可能?

ul

我试图破译您的问题,但我想您想要这样的事情:

function item_attributes_data($id){
    // first get your attributes
    $query=$this->db->query("SELECT id, attributes.attribute_text FROM attributes");

    $attributes = $query->result();

    $finalResult = array();

    // then get the items for each attribute
    foreach($attributes as $attribute) {
        // fetch the items
        $itemsQuery = $this->db->query("SELECT attr_value, cost FROM item_attributes WHERE attr_id=" . $attribute['id']);

        $items = $itemsQuery->result();

        $finalResult[] = array( "attribute_text" => $attribute["attribute_text"], "choices" => $items );
    }

    return $finalResult;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章