Как добавить элемент в массив
У меня есть один метод в 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
}
]
Итак, как добавить элемент в массив результатов
заранее спасибо
3 ответа
Использовать 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
);
и вы можете добавить все элементы, которые вы хотите.
Попробуйте функцию 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
}
]
}