получить определенный набор объектов используя указанное значение php


получить определенный набор объектов используя указанное значение php

28.10.2020 05:35:44 Просмотров 5 Источник

Добрый день! У меня есть вопрос относительно извлечения конкретного объекта из массива в Object(Php Laravel). Скажем например

Именно здесь находятся данные, которые я хочу получить :

$variable = [array];
// This is the result whenever I use this on blade to see the result of the variable. 
json_encode($variable, true); 

//result 
   [
     {"0":{
           "id":1,
           "name":"Joe",
           "year":2012,
          },
     }, 
     {"0": 
          {
           "id":2,
           "name":"Mark",
           "year" : 2020,
          }
     }, 
     {"0": 
          {
           "id":2,
           "name":"Mark",
           "year" : 2020,
          }
     }

   ]

Я хочу использовать php для извлечения элемента с year = 2020 и id = 2 и вставки его в новую переменную.

поэтому я ожидаю, что результат будет таким :

  [ 
    { 
     "0": 
          {
           "id":2,
           "name":"Mark",
           "year" : 2020,
          } 
    },
   {"0": 
          {
           "id":2,
           "name":"Mark",
           "year" : 2020,
          }
     }
   ]

Я уже пробовал :

  $new_val = []
  foreach($variable as $key => value) {
     if($value['year'] == "2020" && $value['id'] == "2") {
         array_push($new_val , $variable[$key]):
     }
  } 

Спасибо что прочитали мой вопрос

У вопроса есть решение - Посмотреть?

Ответы - получить определенный набор объектов используя указанное значение php / get certain set of object using the specified value php

Является ответом!
Cleiton Messias

28.10.2020 06:07:17

$variable[] = [
    "id"   => 1,
    "name" => "Joe",
    "year" => 2012,
];
$variable[] = [
    "id"   => 2,
    "name" => "Mark",
    "year" => 2020,
];

function _search($array, $name, $year)
{
    foreach ($array as $item) {
        if ($item['name'] == $name && $item['year'] == $year) {
            return $item;
        }
    }
    return false;
}
$new = _search($variable, 'Mark', '2020');
print_r($new);````
Помочь в развитии проекта:
Закрыть X