Каим образом извлечь значени полей из ассоциативного массива и добавить их в одномерый массив

171
21 марта 2018, 06:22

Выборка из бд, которая возвращает объект

 $result = DB::table('messages')->select('mess_to','mess_from')->where('mess_to', '=', $id)->where('mess_from', '=', $goid)->orWhere(function($query) use ($id,$goid) {
              $query->where('mess_to', '=',$goid )
                      ->where('mess_from', '=', $id);
        })
        ->get();

Возвращает вот что

Collection {#265 ▼
  #items: array:4 [▼
    0 => {#261 ▶}
    1 => {#263 ▶}
    2 => {#264 ▶}
    3 => {#266 ▶}
  ]
}

Далее переводим возвращаемый объект в массив

$result = (array)$result;

Результат такой

array:1 [▼
  "\x00*\x00items" => array:4 [▼
    0 => {#261 ▼
      +"mess_to": "31"
      +"mess_from": "13"
    }
    1 => {#263 ▼
      +"mess_to": "13"
      +"mess_from": "31"
    }
    2 => {#264 ▼
      +"mess_to": "31"
      +"mess_from": "13"
    }
    3 => {#266 ▼
      +"mess_to": "13"
      +"mess_from": "31"
    }
  ]
]
 Мне нужно для выбрачить числа из этого массива и поместить их в одномерный мсассив, как это сделать?
Answer 1

Предположим, что в $result у вас 3 объекта, в каждом есть id, name, surname. Пилим следующее:

for($i=0; $i<count($result); $i++) {
// Тут делаем что угодно с каждым объектом, там выводим к примеру
echo $result[$i]['id']; // Выведет id объекта в цикле
}

То есть вывод будет

1
2
3

Если будет более детальнее описано условие, будет более детальный ответ, но это то, что вам нужно

Answer 2
 $result = DB::table('messages')->select('mess_to','mess_from')->where('mess_to', '=', $id)->where('mess_from', '=', $goid)->orWhere(function($query) use ($id,$goid) {
          $query->where('mess_to', '=',$goid )
                  ->where('mess_from', '=', $id);
    })
    ->get();
    $se = array();
  foreach ($result as $v){
 $se[] = $v->mess_from;
 $se[] = $v->mess_to;
 }
READ ALSO
Unit тестирование и sqlite in memory

Unit тестирование и sqlite in memory

Ситуация следующая:

173
Перевод номера в другой формат PHP

Перевод номера в другой формат PHP

Как перевести номер вида +79000066808 в вид 8 900 006-68-08?

220
Как преобразовать tsv ответ яндекс директ api в массив?

Как преобразовать tsv ответ яндекс директ api в массив?

Собственно вопрос такойПолучаю отчет яндекс директа

194