我正在尝试解决与更大的脚本相关的问题。然而,下面的简单示例清楚地显示了我试图在更大的脚本中解决的问题。这是准备好的代码
$a=array("Volvo",22,18);
$b=array("BMW",15,13);
$c=array("Saab",5,2);
$d=array("Land Rover",17,15);
UNSET ($a);
$a=array_filter($a);//remove the null values
$a=array_values($a);//remove the keys
$cars = array
(
$a,
$b,
$c,
$d,
);
print "<pre>";
print_r($cars);
print "</pre>";
我的问题如下......
取消设置($ a)删除数组($ a)的内容。但是从示例(print_r)可以看出,数组($ a)没有被完全销毁。钥匙仍然存在。由于第三方验证器解释了此残留数组数据并返回验证错误,因此稍后会导致严重问题。摆脱错误的唯一方法是完全摆脱数组($ a)。
如您所见,我尝试过array_filter($ a)和array_values($ a)。但输出没有变化。
在这个例子中,任何人都知道如何以编程方式摆脱数组($ a)?
非常感谢
ps这是Print_r的输出
Array
(
[0] =>
[1] => Array
(
[0] => BMW
[1] => 15
[2] => 13
)
[2] => Array
(
[0] => Saab
[1] => 5
[2] => 2
)
[3] => Array
(
[0] => Land Rover
[1] => 17
[2] => 15
)
)
答案 0 :(得分:0)
您可以在3v4l处看到此解决方案。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如果您的汽车是硬编码的,那么这句话很好,但是,如果您需要对汽车进行检查,那么我建议在汽车上创建关联阵列,如下所示:
$cars = [
[ 'Volvo', 22, 28 ], // index 0
[ 'BMW', 15, 13 ], // index 1
[ 'Add Cars', X, Y ] // index i
];
unset($cars[0]); // unset Volvo
unset($cars[1]); // unset BMW
unset($cars[$i]); // unset index
答案 1 :(得分:0)
感谢WEjuju我有一个简单的解决方案。好的工作有人理解array_filter。它的工作如下:
$a=array("Volvo",22,18);
$b=array("BMW",15,13);
$c=array("Saab",5,2);
$d=array("Land Rover",17,15);
UNSET ($a);
$cars = array
(
$a,
$b,
$c,
$d,
);
print "<pre>";
print_r($cars);
print_r(array_filter($cars));//note the use of the filter after unset
print "</pre>";
?>
输出现在......
Array
(
[1] => Array
(
[0] => BMW
[1] => 15
[2] => 13
)
[2] => Array
(
[0] => Saab
[1] => 5
[2] => 2
)
[3] => Array
(
[0] => Land Rover
[1] => 17
[2] => 15
)
)
没有麻烦[0] =&gt;干扰验证。