#php #arrays #email #variables #carbon-copy
#php #массивы #Адрес электронной почты #переменные #копирование под копирку
Вопрос:
То, что я пытаюсь сделать, это проанализировать адреса CC из некоторых почтовых заголовков с помощью PHP, они передаются в виде массива (как ни странно, даже если это всего один адрес). И я хотел бы просто преобразовать массив в одну длинную переменную.
Так, например, если бы у меня был следующий массив: array (bob@example.com , bill@example.com );
Затем я хочу преобразовать это в одну переменную, которая может быть чем-то вроде ‘bob@example.com ,bill@example.com ‘
Я пробовал несколько вещей, и главное, что, по моему мнению, должно было сработать, было следующее:
$ccList[]=$headerinfo->cc;
foreach( $ccList as $key=>$val ){
$ccAddress .= $val.",";
}
Sys::log(LOG_ALERT,'CC Address is..'.$ccAddress);
но когда я получаю этот файл журнала, в нем говорится: «Адрес CC есть…Массив,»
Есть ли какой-нибудь способ выполнить то, что я хочу? Я должен отметить, что в качестве его адресов CC я не всегда буду знать, являются ли его 0 адресами или несколькими или где-то между ними.
Я также попробовал несколько действий с print_r и var_dump, но они не вернули результаты, которые я ожидал увидеть (адреса электронной почты). Я думаю, что var_dump все еще показывал «Массив» (или ничего), а print_r просто сказал «Адрес CC равен … 1».
Любая помощь приветствуется.
Комментарии:
1. Сначала проверьте с помощью var_dump, что находится в переменной $val. В любом случае я не понимаю, как вы инициализируете переменную $ccAddress.
2. echo $key и $val. Убедитесь, что у вас есть ccList.
Ответ №1:
http://php.net/manual/en/function.implode.php взгляните сюда.
$newccAddress = implode(",", $ccAddress);
Комментарии:
1. Когда я повторяю ключ / значение, я получаю: ключ равен ..0 Значение равно.. Массив, но вывод вашей команды таков: «newCC Адрес внешнего цикла — это ..»
2. адаптируйте метод implode к вашему случаю. implode создает одну переменную, как вы хотели, но ваша проблема сильно отличается от создания одной переменной. убедитесь, что вы получаете из $headerinfo-> cc;
3. Да, чего я не понимаю, так это того, что когда я печатаю $headerinfo-> cc, я получаю «Массив», но когда я печатаю var_dump($headerinfo-> cc), я ничего не получаю. Проблема заключается в том, что это делается с помощью функции, поэтому мне нужно распечатать журнал панели мониторинга, чтобы увидеть результаты. Разве вывод «Array» не предполагает, что он не пустой?
4. вздох, я пошел дальше в своем коде и исследовал imap_headerinfo. Оказывается, есть как cc, так и ccaddress, которые вы можете использовать. Вместо этого я просто использовал ccaddress, и он дает мне именно то, что я хочу. в любом случае, спасибо, ребята, implode — это то, что мне было нужно в противном случае!
Ответ №2:
Вы хотите использовать implode
функцию. Как в, $result = implode(',', array(bob@example.com, bill@example.com))
, который вернет ваш результат.
Ответ №3:
В этом примере вы можете использовать implode()
, выключив причину
Если говорить о «преобразовании PHP-массива в одну переменную» в целом, то именно здесь вы захотите взглянуть на array_reduce()
beast .