2016-10-17 179 views
0

我想循環在drupal中的某些數組鍵,但這是一個更通用的PHP數組問題。忽略#數組鍵在PHP foreach循環

的陣列看起來是這樣的......

$form['items'] = array(
    #title => 'hello', 
    0  => array(
       #subtitle => 'hello2'; 
      ), 
    1  => array(
       #subtitle => 'hello2'; 
      ), 
    #prefix => '<div>hello</div>', 
); 

正如你所看到的,關鍵是數字鍵和#meta鍵的組合。

我用這...

foreach($form['items'] as $x) { 
    unset($form['items'][$x]['column1']); 
} 

但我只想要定位的數字鍵,我已經試過is_numeric但它返回false。

有人能告訴我如何忽略其他鍵嗎? (忽略#title和#prefix等)

+0

php中的'#'符號開始一行註釋。如果你的數組聲明看起來與你粘貼的數組聲明相似,那麼'$ form ['items']'包含2個空數組,僅此而已。除非Drupal做了一些奇怪的魔法。 –

+0

是的,我認爲它是一個Drupal的東西,下面的答案整理它! – Collins

回答

1

您想檢查密鑰,但是您在使用foreach中的值。執行以下操作:

foreach($form['items'] as $key => $value) { 
    if (is_numeric($key)) 
     unset($form['items'][$key]); 
} 

希望我是有幫助的

+1

是的,謝謝! – Collins

1

使用is_int()而不是is_numberic()

foreach ($input_array as $key => $val) { 
    if (is_int($key)) { 
    // do stuff 
    } 
} 

需要注意的是is_int僅適用於東西都是整數類型,這意味着字符串表示不允許。