Я, наконец, сдал Gmail API в PHP но у меня проблемы с получением заголовков, тем и времени из заголовков
У меня есть массив, который выглядит следующим образом, но продолжается и продолжается:
Array
(
[0] => Google_Service_Gmail_MessagePartHeader Object
(
[name] => Subject
[value] => My Subject
[modelData:protected] => Array
(
)
[processed:protected] => Array
(
)
)
[1] => Google_Service_Gmail_MessagePartHeader Object
(
[name] => From
[value] => John Doe
[modelData:protected] => Array
(
)
[processed:protected] => Array
(
)
)
В двух словах, мне просто нужен способ поиска в массиве, когда ['name'] => 'Date'
тогда мне нужно хранить то, что находится в ['value']
введите переменную, чтобы я мог повторить это позже. Должен ли я использовать что-то вроде array_search для этого или есть лучший способ?
Если вам не важен порядок заголовков (99% клиентов не будут), вы можете преобразовать его из:
Список (Имя, Значение) для отображения на карте / Dict of Name => Список<Значение>, Для большинства заголовков, которые вас интересуют, в списке будет только одно значение, но это сделает переход от / subject / к заголовкам тривиальным.
В питоне это будет:
заголовки = {} для заголовка в header_list: если заголовок ['name'] отсутствует в заголовках: заголовки ['name'] = [] заголовки [ 'имя']. добавить (заголовок [ 'значение'])
Самый простой способ — перебрать массив и проверить name
стоимость имущества:
$date_value = '';
foreach ($headers as $header) {
if ('Date' == $header->name) {
$date_value = $header->value;
break;
}
}
var_dump($date_value);
Вот $headers
это ваш массив.
// Grab only those elements of the array where the items ["name"] key is Date
$b=array_filter($array,function($x){if ($x["name"]=="Date") return true; else return false;});
// Now $b is an array containing all elements of $a that are dates
// Then, echo each one of $b's "value"array_walk($b,function($k,$v){echo $b[$k]["value"];});