2012-06-04 3 views
2

Я получаю массив в ответ на запрос. И когда я делаю print_r, это то, что я получаю Array([receiver] => {:email=>"[email protected]"}).Разбор строки, которую я не могу идентифицировать как объект или массив или Json

Я не могу понять, как я могу получить доступ к значению «: email».

Пожалуйста, помогите.

EDIT:

Вот var_dump ответа.

array ('receiver' => '{:email=>"[email protected]"}') 

Спасибо.

+1

Не могли бы вы опубликовать вывод 'var_dump ($ yourarray)'? – bfavaretto

+0

См. Комментарии @Pateman по поводу ответа Майка Б. У вас есть строка '{: email =>" [email protected] "}', поэтому вам придется самостоятельно ее разобрать. – bfavaretto

+0

Я удалил свой ответ с тех пор, как был в стороне от моей предпосылки вашей структуры данных. удачи! –

ответ

2

Используйте регулярное выражение, чтобы получить электронное письмо.

$arr = array('recebodor' => '{:email=>"[email protected]"}'); 

$email = preg_replace('/{:email=>"([^"]+)"}/', '$1', $arr['recebodor']); 
echo $email; // [email protected] 

Объяснение:

{:email=> Match with the "{:email=>" in the string 
"([^"]+)" Get any character within double quotes 
}   Match with the last "}" 
$1   Replace all text with the text found inside parentheses 
+0

ОК. Благодарю. Но разве «электронная почта» не должна быть частью какой-либо структуры данных? и мы должны иметь доступ к нему, пройдя или что-то еще? –

+0

@Vivek см. Мой отредактированный код. – flowfree

+0

@bsdnoobz Я отредактировал адрес электронной почты в вашем ответе. Этот вид считается спамом здесь на StackOverflow. – bfavaretto

Смежные вопросы