2012-02-03 4 views
0

Можно создать дубликат:
PHP - split String in Key/Value pairsКак бы я превратил эту строку в массив?

Эй эксперты, как бы я превратить эту строку в работоспособный массив?

имя_файла = first_name, LNAME = last_name, телефон = phone_number, Street1 = адрес, город = город, состояние = состояние, почтовый индекс = почтовый, носитель = носитель

+0

как насчет некоторых 'взрывов()'? – zerkms

+0

Я * expat *, но * export * кажется уничижительным ...: -? – deceze

+1

эксперт, может быть? Конечно, эксперты - это просто бывшие капли под давлением. –

ответ

0
$arr = array(); 

$pieces = explode(",", $str); 
foreach($pieces as $piece) 
{ 
    list($key, $value) = explode('=', $piece); 
    $arr[$key] = $value; 
} 
+0

Работал красиво и очень чистое спасибо! –

0
$res = array(); 
for ($i in explode(',', $input)) { 
    $parts = explode('=', $i); 
    $res[$parts[0]] = $parts[1]; 
} 
0

Попробуйте это:

$chunks = explode(',', $string); 
$arr = array(); 
foreach($chunks as $set) 
{ 
    $kv = explode('=',$set); 
    $arr[$kv[0]] = $kv[1]; 
} 

Это даст вам:

$arr['fname'] = 'first_name'; 
$arr['lname'] = 'last_name'; 
$arr['phone'] = 'phone_number'; 
$arr['street1'] = 'address'; 
$arr['city'] = 'city'; 
$arr['state'] = 'state'; 
$arr['zip'] = 'zip'; 
$arr['carrier'] = 'carrier'; 

Вот PHP ману al page на explode.

2
array_map(function ($i) { return explode('=', $i); }, explode(',', $string)) 
+1

oneliners ftw ;-) – zerkms

+0

Это, похоже, не работает, но спасибо за усилие –

+0

@Jeff Long: это потому, что вы используете неподдерживаемую версию php – zerkms

1

что-то вдоль линий of-- Еогеасп (раскол ($ long_str, ''), как $ пара) {$ pair_arr = раздвоение ($ пара, '='); $ map [$ pair [0]] = $ pair [1]; }

Я уверен, что синтаксис выключен, но он должен дать вам эту идею.

0

$ str = "fname = first_name, lname = last_name, phone = phone_number, street1 = адрес, город = город, состояние = состояние, zip = zip, carrier = carrier";

parse_str (str_replace (",", "&", $ str), $ result);

var_dump ($ result);

0
/** 
* Converts a string to an associative array. 
* 
* Usage: 
* 
* echo strToAssocArray("k=v,k2=v2", "=", ","); 
* // outputs array('k' => 'v', 'k2' => 'v2') 
* 
* @param string $str the string 
* @param string $keyValueSep the separator between key and value 
* @param string $recordSep the record separator 
* @return array the resulting associative array 
*/ 
function strToAssocArray($str, $keyValueSep, $recordSep) 
{ 
    $sep1 = preg_quote($keyValueSep); 
    $sep2 = preg_quote($recordSep); 
    $regex = '/(.*?)' . $sep1 . '(.*?)(?:' . $sep2 . '|$)/'; 
    preg_match_all($regex, $str, $matches); 
    return array_combine($matches[1], $matches[2]); 
} 
Смежные вопросы