Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 分解数组值并分配给变量_Php - Fatal编程技术网

Php 分解数组值并分配给变量

Php 分解数组值并分配给变量,php,Php,我有一个数组,如图所示 25|12|3|53 我想将数组中的值分解并存储到变量中,如下所示 $variable1 = 25 $variable2 = 12 ... 任何建议都将不胜感激当然,这是可能的: <?php $input = [25,12,3,53]; foreach ($input as $key => $val) { $varname = 'var' . ($key+1); $$varname = $val; } var_dump([$var1, $var2,

我有一个数组,如图所示

25|12|3|53
我想将数组中的值分解并存储到变量中,如下所示

$variable1 = 25
$variable2 = 12
...

任何建议都将不胜感激

当然,这是可能的:

<?php
$input = [25,12,3,53];
foreach ($input as $key => $val) {
  $varname = 'var' . ($key+1);
  $$varname = $val;
}
var_dump([$var1, $var2, $var3, $var4]);

完全按照你的要求去做:

$array = array(25, 'another', 'yet another', 'value');
foreach($array as $index => $value)
{
     ${'variable' . ++$index} = $value;
}

echo $variable1; //shows 25

您可以使用括号
{}
从变量创建新变量

foreach ($array as $i => $arr)
{
  ${'variable'.$i+1} = $arr;
}

如果您有特定数量的元素,那么将数组中的元素转换为变量才有意义,这样您就可以在代码中使用不同的变量集。在所有其他情况下,您应该继续使用数组

因此,这个答案假设数组有一组不同的元素。在这种情况下,可以使用将元素转换为变量:

$array = [12, 25, 3, 53];

list($value1, $value2, $value3, $value4) = $array;

echo $value1; // echoes 12
echo $value2; // echoes 25
echo $value3; // echoes 3
echo $value4; // echoes 53
对于PHP 7.1及更高版本,也可以使用以下短代码:

$array = [12, 25, 3, 53];

[$value1, $value2, $value3, $value4] = $array;

echo $value1; // echoes 12
echo $value2; // echoes 25
echo $value3; // echoes 3
echo $value4; // echoes 53

你知道你可能有多少个数组元素吗?是否每次都只有4个项目?这不是完全干净的样式:手动递增循环中使用的索引变量。。。这对后续变量名意味着什么?是的,它是干净的。索引没有被其他任何东西使用,他希望它从1开始。虽然你实际上有一个观点,如果它被使用的话。那不是我所指的。问题在于,每次手动增加迭代索引只是为了在下一次迭代中再次覆盖它。这很难理解,因此风格不干净。这里肯定应该是
+$index+1
,而不是
+$index
,特别是因为该变量不在其他任何地方使用。
$array = [12, 25, 3, 53];

[$value1, $value2, $value3, $value4] = $array;

echo $value1; // echoes 12
echo $value2; // echoes 25
echo $value3; // echoes 3
echo $value4; // echoes 53