2016-03-05 57 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。