忽略php foreach循环中的#数组键

时间:2016-10-17 14:01:11

标签: php

我试图在drupal中循环某些数组键,但这更像是一个通用的php数组问题。

数组看起来像这样......

$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等)

2 个答案:

答案 0 :(得分:2)

您想要检查密钥,但是您使用的是foreach中的值。执行以下操作:

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

希望我有所帮助

答案 1 :(得分:2)

使用is_int()而不是is_numberic()

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

重要的是要注意is_int仅适用于整数类型的内容,这意味着不允许字符串表示。