【发布时间】:2011-01-28 12:18:12
【问题描述】:
我有一个可以是任意大小或深度的多维数组。我基本上是在尝试用一个值替换空值,但仅在某些情况下。这是数组的一个例子,它很大,但我想很好地说明我的观点:
[field_ter] =>
[field_title] => Array
(
[0] => Array
(
[value] =>
)
)
[field_firstnames] => Array
(
[0] => Array
(
[value] => test9
)
)
[field_birth] => Array
(
[0] => Array
(
[value] =>
)
)
[field_postal] => Array
(
[0] => Array
(
[value] =>
)
)
[group_certificates] => Array
(
[0] => Array
(
[_delta] => 0
[field_cert_details] => Array
(
[value] =>
)
[field_cert_issuedate] => Array
(
[value] => Array
(
[date] =>
)
)
[field_cert_expiry] => Array
(
[value] => Array
(
[date] =>
)
)
[field_cert_issue_country] => Array
(
[value] =>
)
[field_cert_limits] => Array
(
[value] =>
)
)
[1] => Array
(
[_delta] => 1
[field_cert_details] => Array
(
[value] =>
)
[field_cert_issuedate] => Array
(
[value] => Array
(
[date] =>
)
)
[field_cert_expiry] => Array
(
[value] => Array
(
[date] =>
)
)
[field_cert_issue_country] => Array
(
[value] =>
)
[field_cert_limits] => Array
(
[value] =>
)
)
)
我要做的是在数组中找到任何为空的元素,然后将空值替换为一个值。我有一个空元素未被替换的异常数组。这是我目前正在开发的功能:
function check_empty(&$array) {
$exceptions = array('changed', 'form_build_id','date', 'status', 'op');
// This is the array we will return at the end of the function
$new_array = array();
foreach($array as $key => $value) {
if(is_array($value)) {
check_empty($value);
}
elseif ($value == '' && !in_array($key, $exceptions)) {
$new_array[$key] = '$$$';
}
else {
$new_array[$key] = $value;
}
}
return $new_array;
}
有人可以帮助我调整我的功能或为我指明更好的方向吗?我试过 array_walk_recursive 但它不适用于我的数组。
【问题讨论】:
-
请参阅stackoverflow.com/editing-help 获取有关如何格式化您的问题的帮助。在这里,我们使用一种叫做 Markdown 的东西来代替通常的 HTML。文本区域上方有一些工具栏图标可以帮助您进行格式化。欢迎来到本站!
标签: php arrays multidimensional-array