簡體   English   中英

如何在數組中附加元素

[英]How To append Element In Array

我在php中有一種執行存儲過程的方法,如下所示:

Function GetInTransitAndDelivery($Parameter)
    {
        $this->load->database();
        $query =  $this->db->query( " EXEC StoredProcedureName $Parameter");
        if (count($query->num_rows()) > 0)
        {
            $result = array();
            foreach ($query->result() as $row)
            {
                $result[] = array("EffectiveStatusId"=>$row->EffectiveStatusId,
            "EffectiveStatus"=>$row->EffectiveStatus,
            "RecordCount"=>$row->RecordCount);
            }
        }
        return $result;
    }

給我這樣的結果:

{

    "GetInTransitAndDeliveryResponse":[
        {
            "EffectiveStatusId":1,
            "EffectiveStatus":"abc",
            "RecordCount":7
        },
        {
            "EffectiveStatusId":6,
            "EffectiveStatus":"efg",
            "RecordCount":91
        }
    ]

但我想得出這樣的結果:

{

    "GetInTransitAndDeliveryResponse":[
        {
            "EffectiveStatusId":1,
            "EffectiveStatus":"abc",
            "RecordCount":7
        },
         {
            "EffectiveStatusId":1,
            "EffectiveStatus":"efg",
            "RecordCount":7
        },
         {
            "EffectiveStatusId":1,
            "EffectiveStatus":"hij",
            "RecordCount":0
        },

        {
            "EffectiveStatusId":6,
            "EffectiveStatus":"klm",
            "RecordCount":0
        }
    ]

那么如何在結果數組中追加元素

提前致謝

嘗試array_push()函數

請參閱說明文件

根據您的評論修改答案

<?php
//1 - I think your array element is as json string

$str = '{
    "GetInTransitAndDeliveryResponse":[
        {
            "EffectiveStatusId":1,
            "EffectiveStatus":"abc",
            "RecordCount":7
        },
        {
            "EffectiveStatusId":6,
            "EffectiveStatus":"efg",
            "RecordCount":91
        }
    ]
}';

//2 -  So make it first as associative array

$array = json_decode($str,true);

//3 - Then push array item

array_push($array["GetInTransitAndDeliveryResponse"],
    array(
        "EffectiveStatusId"=>1,
        "EffectiveStatus"=>"hij",
        "RecordCount"=>0
    ),

    array(
        "EffectiveStatusId"=>6,
        "EffectiveStatus"=>"klm",
        "RecordCount"=>0
    )
);

//4 - encode it as json string

$str = json_encode($json);

//5 - print it

echo $str;

輸出:

{
    "GetInTransitAndDeliveryResponse":[
        {
            "EffectiveStatusId":1,
            "EffectiveStatus":"abc",
            "RecordCount":7
        },
        {
            "EffectiveStatusId":6,
            "EffectiveStatus":"efg",
            "RecordCount":91
        },
        {
            "EffectiveStatusId":1,
            "EffectiveStatus":"hij",
            "RecordCount":0
        },
        {
            "EffectiveStatusId":6,
            "EffectiveStatus":"klm",
            "RecordCount":0
        }
    ]
}

使用array_push();

我的工作示例如下

    <?php
    $array = array("1", "2");
    array_push($array, "3", "4");
    print_r($array);
    ?>

// output will be
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

在將數組轉換為json之前,請添加以下元素:

$result[] = array(
    "EffectiveStatusId"=>1,
    "EffectiveStatus"=>"hij",
    "RecordCount"=>0
);

$result[] = array(
    "EffectiveStatusId"=>6s,
    "EffectiveStatus"=>"klm",
    "RecordCount"=>0
);

您可以添加所需的所有元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM