получить все значения свойства в объектах массива - PullRequest
0 голосов
/ 24 мая 2018

у меня есть массив объектов, в каждом объекте есть свойства, я хочу собрать определенное свойство во всем объекте, который у меня есть, и присвоить их переменной.

это массив

[
  {
    "id": 23,
    "user_id": 2,
    "friend_id": 2,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  },
  {
    "id": 31,
    "user_id": 2,
    "friend_id": 1,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  },
  {
    "id": 32,
    "user_id": 2,
    "friend_id": 4,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  }
]

Я хочу получить значение friend_id

Какая лучшая практика для этого?спасибо.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Это похоже на строку json, поэтому вам нужно сначала ее декодировать:

$friends = json_decode($json_string, true);

Вы можете извлечь идентификаторы со столбцом массива, как это предлагается в комментариях, или цикл foreach, если вы используетеphp 5.4 или ниже:

$friend_ids = array_column($friends, 'friend_id');
//OR
$friend_ids=array();
foreach($friends as $friend)
    $friend_ids[] = $friend['friend_id'];
0 голосов
/ 24 мая 2018

Вы можете использовать массив карт.То, что это сделает, назначит все идентификаторы друга в новый массив.Я передаю анонимную функцию, которая возвращает только идентификатор друга из объекта.Для получения дополнительной информации о array_map: http://php.net/manual/en/function.array-map.php

<?php 
$json = '[
  {
    "id": 23,
    "user_id": 2,
    "friend_id": 2,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  },
  {
    "id": 31,
    "user_id": 2,
    "friend_id": 1,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  },
  {
    "id": 32,
    "user_id": 2,
    "friend_id": 4,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  }
]';

$jsonObject = json_decode($json);

$newArray = array_map(function($a) {
  return $a->friend_id;
}, $jsonObject);

print_r($newArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...