Php 如何在现有的JSON数组中推送单个元素?
我有一个数组,我想在其中添加一个json元素。这是数组Php 如何在现有的JSON数组中推送单个元素?,php,arrays,json,Php,Arrays,Json,我有一个数组,我想在其中添加一个json元素。这是数组 "six": { "donnes_table_two": [ { "denomination_de_vente": "value", "marques": "value" }, { "denominati
"six": {
"donnes_table_two": [
{
"denomination_de_vente": "value",
"marques": "value"
},
{
"denomination_de_vente": "value",
"marques": "value"
}
]
}
我想在每个数组元素中添加ID,在添加ID之后,它将看起来像它
"six": {
"donnes_table_two": [
{ "id" : "1",
"denomination_de_vente": "value",
"marques": "value"
},
{
"id" = "1",
"denomination_de_vente": "value",
"marques": "value"
}
]
}
ID在每个元素中都是相同的。我可以不使用循环来完成吗?有PHP函数吗?$json\u value='0{
$json_value = '{
"six": {
"donnes_table_two": [
{
"denomination_de_vente": "value",
"marques": "value"
},
{
"denomination_de_vente": "value",
"marques": "value"
}
]
}
}';
$array_value = json_decode($json_value, true);
$total_inner_arrays = 1;
for($i=0; $i<=$total_inner_arrays;$i++)
{
$array_value['six']['donnes_table_two'][$total_inner_arrays]['id'] = 1;
}
$final_result = json_encode($array_value);
“六个”:{
“donnes_table_two”:[
{
“面额”:“价值”,
“品牌”:“价值”
},
{
“面额”:“价值”,
“品牌”:“价值”
}
]
}
}';
$array\u value=json\u decode($json\u value,true);
$total_internal_array=1;
对于($i=0;$i$json\u value=){
“六个”:{
“donnes_table_two”:[
{
“面额”:“价值”,
“品牌”:“价值”
},
{
“面额”:“价值”,
“品牌”:“价值”
}
]
}
}';
$array\u value=json\u decode($json\u value,true);
$total_internal_array=1;
对于($i=0;$i,如果它只是一个字符串,那么您可以使用PHPstr\u replace
在“面额”
之前添加“id”:“1”
,如下例所示
<?php
$json = '{"six":{
"donnes_table_two": [
{
"denomination_de_vente": "value",
"marques": "value"
},
{
"denomination_de_vente": "value",
"marques": "value"
}
]
}}';
//$json = json_encode($yourObject);//if it is an php object or Array
$json = str_replace('"denomination_de_vente"','"id":"1","denomination_de_vente"',$json);
print_r(json_decode($json,true));// here 'true' to get result as array in your case
?>
因此,如果它只是一个字符串,那么您可以使用PHPstr\u replace
在“面额”
之前添加“id”:“1”
,如下面的示例所示
<?php
$json = '{"six":{
"donnes_table_two": [
{
"denomination_de_vente": "value",
"marques": "value"
},
{
"denomination_de_vente": "value",
"marques": "value"
}
]
}}';
//$json = json_encode($yourObject);//if it is an php object or Array
$json = str_replace('"denomination_de_vente"','"id":"1","denomination_de_vente"',$json);
print_r(json_decode($json,true));// here 'true' to get result as array in your case
?>
您也可以这样做:
<?php
$str = <<<EOD
{
"six": {
"donnes_table_two": [
{
"denomination_de_vente": "value",
"marques": "value"
},
{
"denomination_de_vente": "value",
"marques": "value"
}
]
}
}
EOD;
print '<pre>';
$response = json_decode($str, true);
print_r('Before:');
print_r($response);
$array = array_map(function ($x) {$x['id'] = 1; return $x; }, $response['six']['donnes_table_two']);
$response['six']['donnes_table_two'] = $array;
print_r('After:');
print_r($response);
您也可以这样做:
<?php
$str = <<<EOD
{
"six": {
"donnes_table_two": [
{
"denomination_de_vente": "value",
"marques": "value"
},
{
"denomination_de_vente": "value",
"marques": "value"
}
]
}
}
EOD;
print '<pre>';
$response = json_decode($str, true);
print_r('Before:');
print_r($response);
$array = array_map(function ($x) {$x['id'] = 1; return $x; }, $response['six']['donnes_table_two']);
$response['six']['donnes_table_two'] = $array;
print_r('After:');
print_r($response);
只是另一种方法使用
演示只是另一种方法使用
演示您可以使用数组映射功能
Array
(
[six] => Array
(
[donnes_table_two] => Array
(
[0] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
[1] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
)
)
[seven] => Array
(
[donnes_table_two] => Array
(
[0] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
[1] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
)
)
)
您可以使用数组映射功能
Array
(
[six] => Array
(
[donnes_table_two] => Array
(
[0] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
[1] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
)
)
[seven] => Array
(
[donnes_table_two] => Array
(
[0] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
[1] => Array
(
[id] => 1
[denomination_de_vente] => value
[marques] => value
)
)
)
)
到目前为止,您尝试了什么?1.我可以不使用循环就完成它吗?
.No 2.有没有PHP函数?
没有,PHP中没有任何函数可以不使用循环就完成它。您希望所有元素上都有id 1吗?对我来说没有意义…@niklesh有一个函数可以不使用循环就完成这样的工作。请检查@bansi:我也给出了解决方案我觉得它可以通过str\u replace
一次完成,而不必按照OP的要求去访问每个元素我可以不使用循环吗?
。但我仍然认为数组\u walk
将访问每个元素。不会吗?如果我错了,请纠正我。到目前为止你做了什么?1.我可以不使用循环吗?
。2.不是吗这里有PHP函数吗?
没有,PHP中没有任何函数可以不循环地完成它。你想在所有元素上都使用id 1吗?对我来说没有意义…@niklesh有一个函数可以不循环地完成这类工作。检查@bansi:我也给出了解决方案,因为我觉得它可以通过str_replace
一次完成,而不必访问每个元素正如OP问的那样,我可以不使用循环来做它吗?
。但我仍然认为数组(u walk)
将进入每个元素。不会吗?如果我错了,请纠正我。他不想按照OP说的循环来做而不使用循环
他不想按照OP说的循环来做而不使用循环