【发布时间】:2020-10-25 14:39:05
【问题描述】:
[
{
"packID": 195,
"destinationID": 41,
"phase": "LOC0-LOCAL"
},
{
"packID": 41,
"destinationID": 26,
"phase": "LOC7-FLY"
},
{
"packID": 42,
"destinationID": 10,
"phase": "LOC5-FLY"
}
]
我想更改包号(packID) 41 的阶段和目的地。为此,我首先删除第 41 部分并添加一个新包。但是,这不能正常工作,因为数字 41 可以在其他部分。如果是这样,它会删除其他部分。我该怎么做?
$packageID = 41;
$trPackages = json_decode($jsonContent, true);
foreach ($trPackages as $key => $value) {
if (in_array($packageID, $value)) {
unset($value[$key]);
// Result: Deleted packID:41 and packID: 195 ..
$trPackages[] = ['packID' => 41, 'destinationID' => 99, 'phase' => 'LOC99-FLY'];
}
}
$trPackages = json_encode($trPackages);
...
如何只更改包 41 中的数据?
【问题讨论】:
-
if ($packageID == $value['packID']) {? -
@u_mulder 我试过了,但是这次没有变化。
标签: php arrays json multidimensional-array