簡體   English   中英

如何使用條件 PHP 更新關聯數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM