Измените строковое значение массива на другое строковое значение - PullRequest
0 голосов
/ 08 мая 2020

У меня что-то вроде этого:

Collection {#296 ▼
#items: array:1318 [▼
0 => {#289 ▼
  +"Column1": "string1"
  +"Column2": "string2"
  +"Column3": "string3"
  +"Column4": "string4"
  +"Column5": "string5"
 }
1 => {#292 ▼
  +"Column1": "string6"
  +"Column2": "string7"
  +"Column3": "string8"
  +"Column4": "string9"
  +"Column5": "string10"
 }
2 => {#293 ▼
  +"Column1": "string11"
  +"Column2": "string12"
  +"Column3": "string13"
  +"Column4": "string14"
  +"Column5": "string15"
 }
]
}     

Для каждого "Column1" мне нужно изменить строковое значение на другое. Вы можете помочь мне? С уважением,

Теперь я объясню лучше:

если Column1 равен определенному значению, то Column2 равен моей строке

Я пробовал это:

 foreach($all as $key=>$row){
        if($row->Column1 = 'NUMAX'){
            $ipoltstatus = Str::before($row->message, '_');
            $olthostname = Olt::where('ipaddress', $ipoltstatus)->value('hostname');

            $row->Column2 = $olthostname;

        }

происходит то, что все столбцы Column1 по ошибке принимают значение NUMAX, а column2 становится пустым

1 Ответ

0 голосов
/ 08 мая 2020

В PHP сравнение выполняется === не =, единственный знак равенства предназначен для установки значения. Таким образом, изменение = на === должно помочь. Также есть == и ===, два типа знаков равенства жонглируют и тройка сравнивает переменные как есть. 2 == '2' истинно, а 2 === '2' ложно.

foreach ($all as $key => $row) {
    if ($row->Column1 === 'NUMAX') {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...