我要疯了,在 php 中首次亮相 ..
我需要检查多维数组的键值是否都是数字..
我的 $values_arr 的 print_r() 给出:
Array ( [coco] => Array ( [0] => 18 [1] => 99 ) [chanel] => 150
我需要检查 18 和 99 和 150 是否是数字,我不知道数组中会出现什么,而且这个数组不会超过 2 维。
我尝试了很多东西,最后一个..:
foreach ( $values_arr as $foo=>$bar ) {
if( !in_array( $foo, $_fields_arr ) || !is_numeric($bar ) ) {
echo "NOTGOOD";
}
}
****UPDATE****
新测试:这里因为 chanel 不是 int ,这个例子应该是 echo "not goud",但事实并非如此..
$_fields_arr = array('coco','chanel','other');
$ary = array(
'coco' => array(18, 99),
'chanel' => 'yu'
);
function allIntValues($o)
{
if (is_int($o)) return true;
if (is_array($o)){
foreach ($o as $k => $v) {
if (!is_int($v)) return false;
}
}
return true;
}
foreach ($ary as $k => $v) {
if (!in_array($k, $_fields_arr) || !@allIntValues($v)){
echo "notgood";
}
else echo "good";
}
感谢您的帮助,问候