我有这个数组:
Array
(
[self] => Folder A
[my_data] => Array
(
)
[18] => Array
(
[self] => Folder AA
[my_data] => Array
(
[0] => stdClass Object()
)
[20] => Array
(
[self] => Folder AA
[my_data] => Array
(
[0] => stdClass Object()
)
[21] => Array
)
我想检查数组中是否存在某些数据。但条件是,它是一个多维数组。如果我在数组中获得任何单个记录(在my_data中),那么我想返回TRUE,否则为FALSE。为此,我做了一个递归函数。
function checkIfDataExists($tab) {
$status = true;
if (!count($tab['my_data'])) {
$status = false;
}
if (count($tab) > 2) {
foreach ($tab as $subTabKey => $subTabValue) {
if( $subTabKey != 'self' && $subTabKey != 'my_data' ) {
return checkIfDataExists($subTabValue);
}
}
}
return $status;
}
但它总是返回FALSE。上面的例子应该返回TRUE,因为[18]的'my_data'中有记录。
编辑:另一个应该返回TRUE的例子
Array
(
[self] => Main Folder22
[my_data] => Array
(
)
[17] => Array
(
[self] => New Sub
[my_data] => Array
(
)
)
[8] => Array
(
[self] => sub folder 21
[my_data] => Array
(
)
[9] => Array
(
[self] => sub folder 211
[my_data] => Array
(
[0] => stdClass Object()
)
答案 0 :(得分:0)
function checkIfDataExists($tab) {
$status = true;
if (!count($tab['my_data'])) {
$status = false;
}
if (count($tab) > 2) {
foreach ($tab as $subTabKey => $subTabValue) {
if( $subTabKey != 'self' && $subTabKey != 'my_data' ) {
return checkIfDataExists($subTab);
}
}
}
return $status;
}