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 回答