[英]How to udpate associative array with condition PHP
我正在使用 php 和 phpexcel,我有以下數組($data)我想在 php 中搜索和更新數組值,例如我想更改其 Z0C83F57C781963CZ 的用戶的“鏈接”值(想添加“txt”)是“cde@gmail.com”,我可以這樣做嗎? 這是我當前的數組
Array
(
[0] => Array
(
[email] => abc@gmail.com
[link] => abc,xyz,def
)
[1] => Array
(
[email] => cde@gmail.com
[link] => cde,abb
)
[2] => Array
(
[email] => xyz@gmail.com
[link] => abb,aya
)
這是我的預期結果(為“cde@gmail.com”添加“txt”)
Array
(
[0] => Array
(
[email] => abc@gmail.com
[link] => abc,xyz,def
)
[1] => Array
(
[email] => cde@gmail.com
[link] => cde,abb,txt
)
[2] => Array
(
[email] => xyz@gmail.com
[link] => abb,aya
)
我嘗試使用以下代碼但無法正常工作
foreach ($set_excel_query_all as $key => $value) {
foreach ($value as $subKey => $subValue) {
if ($subKey == 'email') {
$resources[$key][$subKey] = "txt";
}
}
}
您不必遍歷主數組的各個項目,因為您可以直接訪問它們的屬性。
此外,您的代碼不會檢查它對其進行更改的項目的 email。 它不會 append 'txt' 到link
屬性,而是替換它。
考慮到提到的錯誤,您可能希望使用此代碼:
$searchEmail = 'cde@gmail.com';
$appendString = 'txt';
foreach ($mainArray as $key => &$item) {
if ($item['email'] == $searchEmail) {
$item['link'] .= ',' . $appendString;
break;
}
}
// It is strongly recommended to unset reference variables after usage
unset($item);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.