我有這個 json 格式,這是我的最終響應,當我從 API 獲取它時,它只有一個屬性名稱。我使用 json_decoe 得到這個apiErrors[ { PropertyName: "Name1", DisplayName: "Name1", Step: "Step1 }, PropertyName: "Name2", DisplayName: "Name2", Step: "Step2 }]我想刪除 Step 屬性上帶有“Step2”的項目。在 PHP 中,我使用 foreach 進行迭代并添加顯示和步驟屬性$apiErrors = json_decode(curl_exec($ch));foreach ($apiErrors as $value) { if ($value->PropertyName == "Name1") { $value->DisplayName = 'Name1'; $value->Step = 'Step1'; } if ($value->PropertyName == "Name2") { $value->DisplayName = 'Name2'; $value->Step = 'Step2'; }}我嘗試這樣做if (($key = array_search("Step2", $apiErrors)) !== false) { unset($apiErrors[$key]);}但它并沒有刪除任何東西
2 回答

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
簡單的過濾就可以完成這項工作:
$apiErrors = array_filter(
$apiErrors,
function ($v) { return 'Step2' !== $v->Step; }
);

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
我知道一開始這很令人困惑,但是如果您使用 PHP ,它不會自動更新該值foreach()
,因為它會創建自己的局部變量。您需要&
在 前面指定自己$value
,如下所示:foreach ($apiErrors as &$value) {
。這將確保數組中的值實際發生變化。
- 2 回答
- 0 關注
- 112 瀏覽
添加回答
舉報
0/150
提交
取消