【问题标题】:perl array/hash to phpperl 数组/哈希到 php
【发布时间】:2012-06-12 18:28:27
【问题描述】:

尝试将 perl 脚本转换为 php。

在 perl 中我有一个这样的哈希

my %SPEC=(
odmiles           => ['OD Miles','Mileage','odmiles:ecmmiles','num'],
ecmmiles          => ['ECM Miles',0,'','num',' ECM'],
cdl               => ['CDL','CDL']);

我可以像这样访问数据:

$SPEC{ecm}[3]  # output = num

由于 perl 中的哈希不按顺序运行,我将做一个简单的数组

@ORD=('odmiles','ecmmiles','cdl');

然后循环

foreach my $S (@ORD) {
  print $S." = ".$SPEC{$S}[0]."<br />";
  }

我可以用 php 做类似的事情,但在我的哈希中访问超过 [0] 的元素时遇到问题。

【问题讨论】:

  • 我对“从 X 翻译到 Y”的典型回应:hyperpolyglot.org/scripting;这个链接没什么特别的,可能有几个这样的比较表
  • 我不是要求翻译我的代码。我在问如何使用 php 访问哈希中第一个元素之后的元素。即上面示例中的里程,位置[1]
  • 这就是我所拥有的 $array = array("odmiles" => "OD Miles"); $array["odmiles"];
  • @chrisrth 或者 $SPEC = array("odmiles" =&gt; array("OD Miles", "Mileage", ...)); 不确定这是否是有效的 PHP。
  • @chrisrth 我不确定我对你的理解是否正确.. 你知道$SPEC{$S}[0] 给出了第一个元素,而你不知道$SPEC{$S}[1] 给出了第二个元素,等等?

标签: php arrays perl hash


【解决方案1】:

我想你正在寻找这个:

$SPEC = array(
  'odmiles'           => array('OD Miles','Mileage','odmiles:ecmmiles','num'),
  'ecmmiles'          => array('ECM Miles',0,'','num',' ECM'),
  'cdl'               => array('CDL','CDL')
);

然后访问元素会像这样工作:

echo $SPEC['odmiles'][0]; // 'OD Miles'
echo $SPEC['odmiles'][1]; // 'Mileage'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2014-05-12
    • 1970-01-01
    • 2020-07-19
    • 2011-07-02
    • 2012-08-22
    相关资源
    最近更新 更多