我想编写一个程序,该程序将从一个数组(混合的字符串和整数)组成2个数组(一个带有整数,第二个带有字符串)。我猜我的循环有问题,因为它似乎只能工作到桌子的一半。
Values:
{ "pgroup": "blah",
"needs": [
{"need": "blah"},
{"need": "blah"},
{"need": "blah"}
]
}
答案 0 :(得分:1)
我相信您不应该在循环中取消设置($ tab [i]),在循环结束后我将取消设置$ tab。这可能会搞乱职位和您的价值。另外,我认为其他方法无法正确打开和关闭{}。
我会这样:
function check(&$tab,&$tabstr,&$tabint) {
$tabint= array();
$tabstr= array();
for($i=0;$i<count($tab);$i++) {
if(is_numeric($tab[$i])==1) {
array_push($tabint, $tab[$i]);
}
else {
array_push($tabstr, $tab[$i]);
}
}
unset($tab);
}
答案 1 :(得分:1)
此处未设置$tab
变量时,count($tab)
的值将更改,因此循环将制动。因此,将$ tab的计数分配给变量,然后检查,这是一个代码
function check(&$tab,&$tabstr,&$tabint){
$length = count($tab);
for($i=0;$i<$length;$i++){
if(is_numeric($tab[$i])==1){
$tabint[]=$tab[$i];
unset($tab[$i]);
}else{
$tabstr[]=$tab[$i];
unset($tab[$i]);
}
}
}