访问动态生成PHP的Array中的元素

时间:2014-11-28 23:18:53

标签: php arrays

我认为这是一个有趣的问题,我正在寻找比我能想到的更好的解决方案。

我在我的php代码中返回一个POST数组,其中包含一个动态生成的元素数组,其长度因用户而异。

实施例

Array = (
[element-1] = a,
[element-2] = b,
[element-3] = c,
[non-element] = something,
[another-non-element] = something
)

现在,在我的PHP代码中,我需要为每个元素调用一个函数(不是非元素)

实施例

$element= $_POST['element-1'];
saveElements(element);

因此,我试图想出一个通过整个阵列并挑选元素的好方法。没有做类似的事情:

$i = 1;
foreach($_POST as obj){
if(obj == 'element-' + $i)

$element= $_POST['element-' + $i];
saveElements(element);

}

我很担心,因为这假设订单是正确的。

有更好的建议吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

$_POST看起来如下

更好
Array = (
    [elements] = [a, b, c],
    [non-element] = something,
    [another-non-element] = something
)

这样您就可以迭代$_POST['elements']

foreach($_POST['elements'] as $element) {
    saveElements($element);
}

答案 1 :(得分:1)

如果是表格,您可以为“element []”生成输入并为其中每一个设置名称属性。然后$ _POST [element]是你生成的元素数组。

foreach($_POST['element'] as $index => $value){
    saveElement($value);
}

考虑到下面的评论,这会更好:

foreach($_POST as $key => $val){
    preg_match('#element-\d#i', $key, $found);
    if(isset($found[0]))
        saveElement($val);
}