完全删除嵌套数组

时间:2016-11-30 22:20:59

标签: php arrays multidimensional-array

我正在尝试解决与更大的脚本相关的问题。然而,下面的简单示例清楚地显示了我试图在更大的脚本中解决的问题。这是准备好的代码

 $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
     )

 )

2 个答案:

答案 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;干扰验证。