レッツは、私は、文字列を持っていると言う個別の値以上(破)
type[] => fruit,vegetable
item[] => apple,orange,carrot
誰もがこの上で私を助けることができます?
レッツは、私は、文字列を持っていると言う個別の値以上(破)
type[] => fruit,vegetable
item[] => apple,orange,carrot
誰もがこの上で私を助けることができます?
ここでは、文字列を2つの配列に解析するコードを示します。
<?php
$type=array();
$item=array();
$a="fruit: apple, fruit: orange, vegetable: carrot,";
foreach (explode(',',trim($a,',')) as $csv){
list($k,$v)=explode(':',$csv);
$k=trim($k);
$v=trim($v);
if($k && $v){
if(!in_array($k,$type)) $type[]=$k;
if(!in_array($v,$item)) $item[]=$v;
}
}
print_r($type);
print_r($item);
あなたは$のタイプは、あなたの質問にあるようなCSV単一の文字列になりたい場合は、あなたがこのように結合を使用することができます
$string = "fruit: apple, fruit: orange, vegetable: carrot,";
preg_match_all("/([a-zA-Z0-9]*): ([a-zA-Z0-9]*),/U", $string, $output_array);
print_r($output_array);
:
print join(',',$type);
答えをありがとう – Alex
このコードは、あなたが簡単にアクセスもできarray
に入れます、see DEMO
<?php
$string = "fruit: apple,fruit: orange,vegetable: carrot";
$output = array(array());
foreach(explode(",", $string) as $item){
$parts = explode(": ",trim($item));
if(array_key_exists($parts[0], $output)){
array_push($output[$parts[0]], $parts[1]);
}else{
$output[$parts[0]] = array($parts[1]);
}
}
?>
それは、後のゲインそのために、結果としてあなたに
<?php
$output = array(
"fruit" => array(
"apple",
"orange"
),
"vegetable" => array(
"carrot"
)
);
?>
をこのようなarray
を与えますあなたは次のようになります:
$output["fruit"][0];
これにより、りんごの結果が得られます。
これはコメントであり、答えではありません。しかし、私はクエリに同意します –
はい、私は今参照してください。私は実際に彼の質問の最初の部分に注意を払っていません。私はこの答えを編集します。 – Nytrix
あなたは文字列を変換していません。あなたが配列で始めると簡単です –
はこのような何かを試してみてください
Array
(
[0] => Array
(
[0] => fruit: apple,
[1] => fruit: orange,
[2] => vegetable: carrot,
)
[1] => Array
(
[0] => fruit
[1] => fruit
[2] => vegetable
)
[2] => Array
(
[0] => apple
[1] => orange
[2] => carrot
)
)
昏睡状態で爆発するoop、コロンで爆発する。あなたの望む出力がちょっと奇妙に見える –