如何在php中将字符串转换为关联数组?

我有一个带有以下格式的换行符和空格的字符串。


<?php 

$str = 'Name: XXXXXXXX


Email: XXXX@sample.com


Community: Test Community.';

?>

我想将此字符串转换为数组


Array(

   [Name] => XXXXXXXX

   [Email]=> XXXX@sample.com

   [Community] => Test Community.

)

我的尝试:


$str = 'Name: XXXXXXXX Email: XXXX@sample.com Community: Test Community.';

echo "<pre>";

print_r(explode(":", $str)); 

exit; 


慕运维8079593
浏览 297回答 3
3回答

侃侃尔雅

首先使用模式拆分字符串\n+。然后使用在拆分字符串后得到的 array_reduce() 对数组进行迭代。在迭代的每个循环中,都将分解字符串 ane 准备。您期望的格式。代码示例:$str = 'Name: XXXXXXXXEmail: XXXX@sample.comCommunity: Test Community.';$elm = preg_split('/\n+/', $str);$data = array_reduce($elm, function ($old, $new) {&nbsp; &nbsp; $key_value = explode(':', $new);&nbsp; &nbsp; $old[$key_value[0]] = $key_value[1];&nbsp; &nbsp; return $old;}, []);print_r($data);

眼眸繁星

您可以array_filter与array_walk& 一起使用explode$c = array_filter(explode('', $str));$r = [];array_walk($c, function($v, $k) use (&$r){&nbsp; $arr = explode(':', $v);&nbsp; $r[$arr[0]] = $arr[1];});工作示例:https : //3v4l.org/fgKnE

蝴蝶不菲

您可以将元素插入到一个数组中,然后将其推送到另一个数组中,如下所示:$array = array();$element = array("name"=>"xxxxx", "email"=>"xxx@sample.com", "community"=>"Test Comunity");array_push($array, $element);dump($array);die;
打开App,查看更多内容
随时随地看视频慕课网APP