0

個別の変数で可能なすべての変数値を取得する方法.....コンマで区切られた

$bin="1,2,3,4,5,6,ABC,AAA,77,00,11,AS,Code";

このようなすべての可能な変数を取得する方法。

$NN01="1";
$NN02="2";
$NN03="3";
$NN04="4";
$NN05="5";
$NN06="6";
$NN07="ABC";
$NN07="AAA";
$NN08="77";
$NN09="00";
$NN10="11";
$NN11="AS";
$NN12="Code";

上記の文字列は、コンマ以外の任意の演算子で区切ることができます。ご協力いただきありがとうございます....

4

5 に答える 5

6

それはできませんが、それらを配列に分解できます。

$bin="1,2,3,4,5,6,ABC,AAA,77,00,11,AS,Code";
// any delimiter in place of ','
$arr = explode(',',$bin);
echo $arr[0];

編集:わかりました、それは可能です。私はあなたがそれをすることができないだろうと間違って述べました.

于 2012-08-24T00:41:29.150 に答える
3
$bin = "1,2,3,4,5,6,ABC,AAA,77,00,11,AS,Code";
list ($NN01,$NN02,$NN03,$NN04,$NN05,$NN06,$NN07,$NN07,$NN08,$NN09,$NN10,$NN11,$NN12) = $bin;

または完全に動的なもののために

$i = 0;
foreach ($bin as $val) {
    $temp = 'NN' . str_pad(++$i, 2, '0');
    $$temp = $val;
}
于 2012-08-24T00:58:12.480 に答える
2

別のアイデアは、extractを使用して、目的のプレフィックスを提供することです。

$bin="1,2,3,4,5,6,ABC,AAA,77,00,11,AS,Code";

これにより、$NN_0 .. $NN_11 が得られます。ここで、'NN' は選択したプレフィックスです。

extract( explode( ',', $bin ), EXTR_PREFIX_ALL, 'NN' );
于 2012-08-24T01:16:13.173 に答える
2

関数を使用してexplode、初期値を配列に変換できます。

$bin="1,2,3,4,5,6,ABC,AAA,77,00,11,AS,Code";
$array_of_values = explode(',' $bin);

これにより、数値でインデックス付けされた配列が得られます。これは次のようになります。

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => ABC
    [7] => AAA
    [8] => 77
    [9] => 00
    [10] => 11
    [11] => AS
    [12] => Code
)

それを使用して、インデックスで個々の値にアクセスできます。

echo $array_of_values[0]; // 1

配列について詳しくは、http: //php.net/manual/en/language.types.array.phpをご覧ください。

そこから、値を変数に設定する場合は、「変数変数」を使用するこのループを使用できます。

$bin= "1,2,3,4,5,6,ABC,AAA,77,00,11,AS,Code";
$array_of_values = explode(',', $bin);
$vn = 'NN';
foreach ($array_of_values as $k=>$v) {
  ${$vn.$k} = $v;
}
echo 'NN1:'.$NN1; // NN1:2
echo 'NN2:'.$NN2; // NN2:3
echo 'NN2:'.$NN3; // NN3:4

試してみてください: http://codepad.org/Ee8F9F18

ドキュメンテーション

于 2012-08-24T00:49:14.903 に答える
1

何を達成しようとしているのかわかりませんが、array()を使用しないのはなぜですか?

シンプルに動作します。

$YourArray = array ( "NN01" => "1", "NN02" => "2") // And so on
于 2012-08-24T00:42:17.590 に答える