2

我有一个 Drupal 表单数组,它使用前缀“#”来表示给定的数组键包含元数据而不是实际值。除了键以“#”开头的元素之外,如何循环遍历所有数组元素?

4

3 回答 3

4
foreach( $array as $key => $value ) {
    if( $key[0] === "#" ) {
        continue;
    }

    //Do work
}
于 2012-06-15T13:37:23.213 回答
2

当当前键以 a 开头时,您可以使用continue它跳到循环中的下一个迭代#。获取第一个字符的一种方法是使用substr().

foreach ($array as $key => $value) {
    if (substr($key, 0, 1) === '#') continue;
    //do stuff
}
于 2012-06-15T13:37:48.230 回答
0

尝试这个:

<?php
function deleteElements(&$v, $k) {
   global $newArray;

   if(substr($k, 0, 1) !== '#') {
      $newArray[$k] = $v;
   }
}

$arr = array('as'=>'Test','#df'=>'this will not come','gh'=>'no test','#e'=>'again!');
$newArray = array(); // this will contain non-metadata keys
array_walk( $arr, 'deleteElements' );

//$newArrayis now..
$newArray = array('as'=>'Test','gh'=>'no test');
?>

希望这可以帮助。

于 2012-06-15T13:43:46.330 回答