PHP到AS3转换(数组相关)


PHP to AS3 converting (array related)

我正在尝试将其转换为AS3

$display = array();
$map = array(array(0, 0, 1, 0, 1, 1, 2, 1 ,0) , array(0, 2, 1, 0, 1, 0) ...etc
foreach ($x as $keyX => $valX)
{
    foreach ($y as $keyY => $valY)
    {
            if (isset($map[$valX][$valY]))
            {
                  $display[$keyX][$keyY] = $map[$valX][$valY];
            }
            else
            {
                 $display[$keyX][$keyY] = "20";
            }
       }
}

那么如何从PHP到as3

我不知道如何在ActionScript中结束这样一组复杂的对象,但代码的字面翻译将是这样的:

var display:Object = {};
for (var keyX in objX) {
  display[keyX] = {}; // initialize new "row"
  for (var keyY in objY) {
    if (map[objX[keyX]][objY[keyY]] != null) { 
      display[keyX][keyY] = (map[objX[keyX]][objY[keyY]]);
    } else {
      display[keyX][keyY] = "20";
    }
  }
}
/*        LEGEND
   keyX = $keyX; objX = $x
   keyY = $keyY; objY = $y
   display = $display; map = $map
*/

由于PHP和AS3在动态对象方面有不同的行为,因此必须在AS3中将每个"行"初始化为一个新对象,否则会出现运行时错误。

这个故事的要点是:AS3没有PHP的foreach (array_expression as $key => $value)结构,但是for...in是一个足够的替代品。