您好我正在尝试使用动态数组名称。但是当我运行此代码时,我收到错误$marker is undefined
。
if (isset($arr)) {
foreach ($arr as $key => $value) {
$marker.$key = array();
$marker.$key ['position'] = $value['lat'] . ',' . $value['long'];
$marker.$key ['draggable'] = 'TRUE';
$marker.$key ['ondragend'] = "test(this.getPosition().lat(),this.getPosition().lng())";
$this->ci->googlemaps->add_marker($marker.$key);
$i++;
}
}
如何创建动态数组名称????
答案 0 :(得分:2)
阅读精细手册。 PHP中的点运算符与Javascript和类似语言中的点运算符完全无关 - 它执行字符串连接。我不太明白你要做的是什么,但我很确定字符串连接不是它。
澄清一下,这是做什么的:
$marker.$key ['draggable'] = 'TRUE';
......是这个;
$marker
中的值,将其解释为字符串$key
中的值,将其解释为字符串$marker
和$string
答案 1 :(得分:1)
尝试这样做,当你进行连接时,PHP只将$ key视为一个数组,并以错误的方式连接。无论如何,在哪里定义了$ marker?
if (isset($arr)) {
foreach ($arr as $key => $value) {
$myarray = $marker.$key;
$myarray = array();
$myarray['position'] = $value['lat'] . ',' . $value['long'];
$myarray['draggable'] = 'TRUE';
$myarray['ondragend'] = "test(this.getPosition().lat(),this.getPosition().lng())";
$this->ci->googlemaps->add_marker($myarray);
$i++;
}
}
答案 2 :(得分:0)
Php中的动态数组名称可以像这样完成
foreach($arr as $key => $value) {
$myarray[$key] = $value;
}
然而,您也可以这样做,设置数组变量
foreach($arr as $key => $value) {
${$key}[$key] = $value;
}