2016-03-05 61 views
1

在我的代码在PHP 5我需要访问其名称中的短划线(case-ins)的数组键。有没有办法做到这一点?与破折号的数组键php 5

我的代码如下所示:

​​

基本上我需要得到数组的大小。我知道我可以使用计数函数,但现在我要处理的最大问题是短划线。我在网上找到了像$ {case-ins}这样的东西。但它不起作用。我无法更改数组键的名称,因为它实际上是使用getopt命令行的参数。

你能帮我解决吗?或者有没有其他方法来计算同一个参数使用了多少次?

感谢您对所有的答案:)

+0

'$ case-ins'在这种情况下是您的选择。这只是变量名称,不是关键本身。事实上,它甚至不是关键,它将是价值。 ('foreach($ arr as $ key => $ value)') – FirstOne

+0

此外:'$ a = array('foo-bar'=>'b'); echo $ a ['foo-bar'];'会输出'b'。我认为你在这里迷惑自己。 '$ case-ins'是变量名称。我可能不正确地理解它,当然 – FirstOne

+0

@Anant我不能使用count($ par),因为我需要获得数组内的数组大小......例如,我有这个数组$ $ par,数组填充$我或者$ case-ins ...等等。 对不起,如果你是明显的东西,但我是新来的PHP,不太明白。 –

回答

1
$par = array(
      array(
       '0'=> 'dark-blue', 
       '1'=> 'yellow', 
       '2'=> 'high-color' 
       ), 
      ); 

$count = 0; 
foreach ($par as $key) { 
    foreach ($key as ${'case-ins'}) { 
     if (preg_match('#-#', ${'case-ins'})==true) { 
      $count = $count+1; 
     }  
    } 
} 
echo $count; // count is 2 .. 

更多信息:在一些严格的PHP系统,您最好使用#(.+)?-(.+)?#代替#-# 和替代${'case-ins'}你可以使用正常的变量,如$case_ins,不是在冲PHP。