#php #arrays #laravel
#php #массивы #laravel
Вопрос:
Добрый день! У меня есть вопрос относительно извлечения определенного объекта из массива в 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" amp;amp; $value['id'] == "2") {
array_push($new_val , $variable[$key]):
}
}
Спасибо, что прочитали мой вопрос
Комментарии:
1. Что вы пробовали? В простейшей форме вы можете просто перебрать свой входной массив, проверить, соответствуют ли год и идентификатор текущего элемента тем значениям, которые вы ищете, и если да, вы просто добавляете текущий элемент в свой выходной массив …
2. 1 к вопросу «что вы пробовали». Как только мы увидим, как далеко вы продвинулись, мы сможем помочь вам выявить любые недостатки в логике или коде.
3. Привет, я предоставил свой фрагмент кода того, что я пробовал. Спасибо за отзыв.
Ответ №1:
$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 amp;amp; $item['year'] == $year) {
return $item;
}
}
return false;
}
$new = _search($variable, 'Mark', '2020');
print_r($new);````
Комментарии:
1. это приводит к ошибке: неопределенный индекс: год, возможно, из-за структуры предоставленного мной массива, не соответствует вашему примеру массива.
2. и он возвращает только 1 элемент
3. это каким-то образом решило проблему, которая у меня есть. Спасибо: D
4. Привет, Клейтон! Похоже, у вас есть довольно убедительный ответ здесь, но часто бывает полезно включить некоторый контекст относительно того, как ваш ответ решает проблему, а не просто фрагмент кода. В противном случае, похоже, вы уже кому-то помогаете. Добро пожаловать на сайт!