0

次のようなシナリオがあります。

$data = "A,B,C=>fruit'\n'D,E,F=>veggie'\n'A,D=>mix"
$rules = array_map('trim', explode('\n', $data));
$i = 1;
foreach ($rules as $rule) {
   $letter_group."_".$i = array_map('trim', explode('=>', $rule));
   $letter.$i = array_map('trim', explode(',', $letter_group."_".$i[0]));
   $group.$i = array_map('trim', explode(',', $letter_group."_".$i[1]));
   $i++;
   var_dump($letter.$i);
   var_dump($group.$i);
}

しかし、これはうまくいきません。これらの出力を取得する方法は?

$letter1 = array('A','B','C');
$letter2 = array('D','E','F');
$letter3 = array('A','D');
$group1 = array('fruit');
$group2 = array('veggie');
$group3 = array('mix');
4

1 に答える 1

0

コメントに同意します。値を配列に入れてみてください(その場合は+1)。私はこれがあなたが望むものだと思います:

<?php
$data = "A,B,C=>fruit'\n'D,E,F=>veggie'\n'A,D=>mix";
$data=str_replace("'","",$data);//you don't need the single quotes in there
$rules = explode("\n", $data);
$array=array();
foreach ($rules as $rule) {
    $ar=explode("=>",$rule);
    $array[$ar[1]]=explode(",",$ar[0]);
}
print_r($array);
?>

これは印刷されます:

Array
(
[fruit] => Array
    (
        [0] => A
        [1] => B
        [2] => C
    )

[veggie] => Array
    (
        [0] => D
        [1] => E
        [2] => F
    )

[mix] => Array
    (
        [0] => A
        [1] => D
    )

)

以下の質問から編集してください:

上記のように多次元配列に格納することをお勧めしますが、個々の変数に配置する必要がある場合は、上記で作成した配列から変数を割り当てることができます。

$letter1=$ar['fruit']
$letter2=$ar['veggie'];
$letter3=$ar['mix'];
//etc ....

なぜ個々の変数にこれらが必要なのですか?

于 2012-10-23T05:47:14.813 に答える