1

複数の文字列値と数値を持つphp varがありますが、

$string = 'Simple 12, Complex 16';

これを配列に分解しますが、この文字列を配列の下のように分解する必要があります。

Array(
   [0] => Array(
      [Simple] => 12,
      [Complex] => 16
   )
)

PHPでこれを行う完璧な方法は何ですか?

4

6 に答える 6

2
<?php
$string = 'Simple 12, Complex 16';
$values=explode(",",$string);
$result=array();
foreach($values as $value)
{
  $value=trim($value);
  list($type,$count)=explode(" ",$value);
  $result[0][$type]=$count;
}
print_r($result);
?>

出力

Array
(
    [0] => Array
        (
            [Simple] => 12
            [Complex] => 16
        )

)

デモ

于 2013-06-20T05:33:22.807 に答える
2

簡単な方法は次のとおりです。

preg_match_all('/(\w+)\s*(\d+)/', $str, $matches);
$result = array_combine($matches[1], $matches[2]);
于 2013-06-20T05:46:55.437 に答える
1

このように出たい場合は、このようにしてください。

 <?PHP
    $string = 'Simple 12, Complex 16';
    $my_arr1 = explode(',',$string);
    foreach ($my_arr1 as $value) {
        $value=trim($value);
        $my_arr2 = explode(' ',$value);
        $final_array[$my_arr2[0]]=$my_arr2[1];
    }
    print_r($final_array);

出力

Array
(
    [Simple] => 12
    [Complex] => 16
)
于 2013-06-20T05:43:13.993 に答える
0
<?php
preg_match_all("/[A-Za-z]+/","Simple 12, Complex 16",$keys);
preg_match_all("/[0-9]{2}/","Simple 12, Complex 16",$vals);
$a = array_combine($keys[0],$vals[0]);
print_r($a);

やってみて

于 2013-06-20T05:40:59.087 に答える
0

ユーザー「Ø Hanky Panky Ø」からの返信にエラーがあります。

ここ:

$result[0][$type]=$count;

正しくは:

$result[][$type]=$count;
于 2013-06-20T05:47:50.323 に答える
0
preg_match_all('/(\w+)\s*(\d+)/', $string, $matc);

$output = array_combine($match[1], $match[2]);
于 2013-06-20T08:04:34.757 に答える