我刚刚阅读了帖子is it bad practice to use variable variables in php in the following fashion?,解释了为什么它们不适合用于类,但我必须创建要排序的动态变量
例如:
$array =
array(
array("Line 1","Line 2","Line 3"),
array("Line 1","Line 2","Line 3"),
array("Line 1","Line 2","Line 3"),
)
$i = 1;
foreach($array as $item){
$string = "Item".$i;
$$string = $item[0]."some code".$item[1]."some code".$item[2]."some code";
}
我知道每个辅助阵列中只有3个数组值,并且只有3个数组。
有没有办法使用“更好的练习”代码实现这一目标?还是一种我忽略的简单方法?
感谢您提前的时间
答案 0 :(得分:3)
这应该做得很好:
$newArray = array_map(function (array $item) {
return $item[0]."some code".$item[1]."some code".$item[2]."some code";
}, $array);
var_dump($newArray);
我根本看不到需要单独变量的地方。
如果您只是动态地对变量进行连续编号($item1
,$item2
等),那么您将尝试保留动态数量的元素。这正是数组的用途:$items[0]
,$items[1]
等。