如何为数组中的每个元素创建变量

时间:2018-08-09 05:21:28

标签: php

我有一个数组

$locations = [ 'name1', 'name2', 'name3', 'name4' ]

现在我要创建变量,例如$ location1,$ location2,...

将分别保存name1,name2,....(即$ location1 ='name1',$ location2 ='name2',.....等)的值

每当管理员添加新位置时,阵列都会更新,因此必须自动创建另一个变量以保存阵列中新位置的名称。

可以使用php完成吗? 原因是我需要访问这些变量并将其值分配给javascript变量,以便在地图中显示其名称。

任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:0)

如果要使用单个变量,则可以使用此程序。

<?php

$locations = ['name1', 'name2', 'name3', 'name4'];

$alocation = array();
$i = 1;
foreach ($locations as $key => $value) {
  $alocation['location' . $i] = $value;
  $i++;
}
extract($alocation);
echo '<pre>'; print_r($alocation); echo '</pre>';
echo $location1 . '--' . $location2 . '--' . $location3 . '--' . $location4;
?>

答案 1 :(得分:0)

尝试

$l = array('name1', 'name2', 'name3', 'name4');
$length = sizeof($l);
for ($i = 0; $i < $length; $i++){
    ${"location".($i+1)} = $l[$i];
}
echo "$location1<br />$location2<br />$location3<br />$location4<br />";

输出

名称1 名称2 名称3 名称4

答案 2 :(得分:0)

您可以初始化动态变量或使用extract函数。

用于创建动态变量的代码段。

$locations = [ 'name1', 'name2', 'name3', 'name4' ];
foreach ($locations as $key => $val){
${'location'.($key +1)} = $val;
}
echo $location3;

输出:

name3

实时demo

用于提取前缀的代码段

$locations = [ 'name1', 'name2', 'name3', 'name4' ];
extract ($locations, EXTR_PREFIX_ALL, 'location');
echo $location_1;

输出:

name2

实时demo

注意:前缀从零开始,带下划线。 提取Docs

答案 3 :(得分:0)

很抱歉,您在此问题上所花的时间。 我只需要从php到javascript获取一个数组

以下代码完全可以做到

<?php $location = [....some values in this array...]; ?>

<script>var name = <?php echo json_encode( $location ) ?>;</script>

现在,每当更新php脚本中的数组时,javascript中的数组就会自动更新。

这就是我想要的。

也感谢你们一票。

你们真棒(继续努力)

答案 4 :(得分:-1)

我不知道为什么要这样做,但是我认为最好的方法是使用JSON对象,这样就可以非常简单地将数组转换为JSON(json_encode,json_decode),然后可以处理所需的任何方式