0

次のような文字列があります。

clid=7 cid=55164 client_database_id=90507 client_nickname=Leandro client_type=0|clid=9 cid=55164 client_database_id=90507 client_nickname=Leandro1 client_type=0|clid=10 cid=55164 client_database_id=90507 client_nickname=Leandro2 client_type=0

「|」クライアントの区切りです。次のような配列を作成する必要があります。

echo Client[0]['clid']; //return 7
echo Client[1]['clid']; //return 9

私はやろうとしています:

$clientList = explode('|', $clientList);
foreach($clientList as $client) {
    $aux[] = explode(' ', $client);
}

このコードは次のようになります。

Array ( [0] => Array ( [0] => clid=7 [1] => cid=55164 [2] => client_database_id=90507 [3] => client_nickname=Leandro [4] => client_type=0 ) [1] => Array ( [0] => clid=9 [1] => cid=55164 [2] => client_database_id=90507 [3] => client_nickname=Leandro1 [4] => client_type=0 ) [2] => Array ( [0] => clid=10 [1] => cid=55164 [2] => client_database_id=90507 [3] => client_nickname=Leandro2 [4] => client_type=0 ) )

そして、クライアントの配列を作成しますが、「=」で爆発する必要がありますが、できません

4

2 に答える 2

3

しかし、私はできません

:) あなたはできる!:

$result = array();
foreach(explode('|', $str) as $record) {
    $r = array();
    foreach(explode(' ', $record) as $field) {
        $assignment = explode('=', $field);
        $r[$assignment[0]] = $assignment[1];
    }   
    $result []= $r; 
}

var_dump($result);

出力:

array(3) {
  [0] =>
  array(5) {
    'clid' =>
    string(1) "7"
    'cid' =>
    string(5) "55164"
    'client_database_id' =>
    string(5) "90507"
    'client_nickname' =>
    string(7) "Leandro"
    'client_type' =>
    string(1) "0"
  }
  [1] =>
  array(5) {
    'clid' =>
    string(1) "9"
    'cid' =>
    string(5) "55164"
    'client_database_id' =>
    string(5) "90507"
    'client_nickname' =>
    string(8) "Leandro1"
    'client_type' =>
    string(1) "0"
  }

  ...
于 2013-05-07T22:36:55.500 に答える