我有一个Drupal表单数组,它使用前缀'#'来表示给定的数组键包含元数据而不是实际值。除了那些键以“#”开头的数组外,我如何遍历所有数组元素?
答案 0 :(得分:4)
foreach( $array as $key => $value ) {
if( $key[0] === "#" ) {
continue;
}
//Do work
}
答案 1 :(得分:2)
当当前密钥以#
开头时,您可以使用continue
跳到循环中的下一次迭代。获得第一个角色的一种方法是使用substr()
。
foreach ($array as $key => $value) {
if (substr($key, 0, 1) === '#') continue;
//do stuff
}
答案 2 :(得分: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');
?>
希望这有帮助。