如何使数组遵循严格的形式?

时间:2018-12-11 15:44:06

标签: php arrays

我在函数中使用了这种特定的数组形式

$array = [
  'x' => [
    0 => [
      'a' => '',
      'b' => ''
    ],
    ............
  ]
  'y' => [
    0 => [
      'a' => '',
      'b' => ''
    ],
    ............
  ]
];

此数组由

指定

第一级只有'x''y'

在它们里面的数字键数组可以扩展到无限

以及这些数字键中的两个字母键 'a''b',它们的值是字符串

此数组是使用HTML 输入并使用两个具有类似值的输入

产生的
value="array[x][][a]"
value="array[x][][b]"
value="array[y][][a]"
value="array[y][][b]"

可以通过更改任何级别值(例如

)轻松更改和提交
value="array[z][z][z]"

并获得新的水平

$array = [
  'z' => [
    'z' => [
       'z' =>  => ''
    ]
  ]
];

而且我想在一开始就严格限制为仅使用特定的第一种数组形式,我考虑过要使用

$correctForm = [
  'x' => [
    0 => [
      'a' => '',
      'b' => ''
    ],
    ............
  ]
  'y' => [
    0 => [
      'a' => '',
      'b' => ''
    ],
    ............
  ]
];
$array = array_intersect_key($array, $correctForm);

但是numeric keys的部分及其值不够严格,以防万一我添加了另一个像'c' => ''的字母,它仍然可以通过,而且如果我将密钥更改为字母,也可以通过,所以我要严格执行此操作

仅限1级['x', 'z']

仅限2级numeric characters key

仅限3级['a', 'b']

我能做到吗?

0 个答案:

没有答案