3

私は次のような1つの文字列を持っています:-

$attributes = "id=1 username=puneet mobile=0987778987 u_id=232";

今、私は次の連想配列形式でそれを取得したい:-

$attributes{'id' => 1, 'username' => puneet, 'mobile' => 0987778987, 'u_id' => 232}

注:- これらのすべての値は、スペースのみで区切られています。どんな助けもかなりのものです。

前もって感謝します

4

5 に答える 5

3
$final_array = array();

$kvps = explode(' ', $attributes);
foreach( $kvps as $kvp ) {
    list($k, $v) = explode('=', $kvp);
    $final_array[$k] = $v;
}
于 2013-02-13T11:02:33.623 に答える
2
$temp1 = explode(" ", $attributes);
foreach($temp1 as $v){
 $temp2 = explode("=", $v);
 $attributes[$temp2[0]] = $temp2[1];
}

爆発する

于 2013-02-13T11:02:02.407 に答える
2

正規表現を使用することをお勧めします。

$str = "id=1 username=puneet mobile=0987778987 u_id=232";
$matches = array();
preg_match_all( '/(?P<key>\w+)\=(?P<val>[^\s]+)/', $str, $matches );
$res = array_combine( $matches['key'], $matches['val'] );

phpfiddleでの作業例

于 2013-02-13T11:06:52.337 に答える
0

このコードはあなたの問題を解決します。

<?php
$attributes = "id=1 username=puneet mobile=0987778987 u_id=232";
$a = explode ( ' ', $attributes) ;
$new_array = array();
foreach($a as $value)
{
    //echo $value;
    $pos = strrpos($value, "=");
    $key = substr($value, 0, $pos);
    $value = substr($value, $pos+1);

    $new_array[$key] = $value;
}
print_r($new_array);
?>

このコードの出力は

Array ( [id] => 1 [username] => puneet [mobile] => 0987778987 [u_id] => 232 )
于 2013-02-13T11:15:14.060 に答える
-1

この文字列を2回分割する必要があると思います

  1. スペースで区切る
  2. で割る'='
于 2013-02-13T11:01:59.220 に答える