【发布时间】:2016-03-05 19:08:57
【问题描述】:
在我的 php 5 代码中,我需要访问名称中有破折号的数组键(case-ins)。有什么办法吗?
我的代码如下所示:
$count = 0;
foreach($par as $key){
foreach($key as $case-ins)
$count = $count+1;
....
}
基本上我需要获取数组大小。我知道我可能可以使用 count 功能,但现在我正在处理的最大问题是破折号。我在网上找到了类似 ${case-ins} 的东西。但它没有用。我无法更改数组键的名称,因为它实际上是我使用 getopt 获得的命令行参数。
你能帮我解决这个问题吗?或者有没有其他方法可以计算同一个参数被使用了多少次?
谢谢大家的回答:)
【问题讨论】:
-
$case-ins在这种情况下是您的选择。那只是变量名,而不是键本身。事实上,它甚至不是关键,而是价值。 (foreach($arr as $key => $value)) -
另外:
$a = array('foo-bar' => 'b'); echo $a['foo-bar'];将输出b。我认为你在这里混淆了自己。$case-ins是变量名。当然,我可能理解错了 -
@Anant 我不能使用 count($par) 因为我需要获取这个数组内的数组大小......例如我有这个数组 $par 填充了数组 $i,或者$case-ins... 等等。如果你说的很明显,我很抱歉,但我是 php 新手,不太明白。
-
@Hello_World 我的意思是你不能有一个名为
$case-ins的变量,它会抛出syntax error, unexpected '-'。$a-b至少意味着您希望从a中减去b。当您键入foreach时,您定义了变量名称,键和值都无关紧要。见the error。见it working。 -
您说:如果我使用 => $value,则 $value 的类型必须是字符串或整数。如果您指的是 foreach,那么 no。
$value可以是任何东西。甚至是一个对象。看看这个多级数组示例:https://3v4l.org/3pSbA
标签: php arrays foreach key getopt