从$ _POST填充PHP多维数组

时间:2013-06-17 00:14:51

标签: php arrays

我必须构建一个数组作为以下一个从$ _POST超全局收集值的数组。 ca_objets值将从变量中收集,而dot之后的部分是我需要从$ _POST收集的内容。

 $va_body=array(
        "bundles" => array(
            "ca_objects.description" => array("convertCodesToDisplayText" => true),
            "ca_objects.description" => array("convertCodesToDisplayText" => true),
            "ca_object.representations.caption" => array("convertCodesToDisplayText" =>  true)
        )
    );

这是我使用的代码:

<?php
$table="ca_objects";
$bund=$_POST['find_bundles']; //This is an array with the values I need.

$va_body=array("bundles" => array()); //I declare the array outside the foreach loop. 

我不确定如何编写循环以便在$ va_body数组中填充“bundles”数组并获得我需要的结果。任何帮助将不胜感激。

   foreach ($bund as $elem ) {
    // code here
        }

    ?>

2 个答案:

答案 0 :(得分:1)

您可以通过关联键访问数组,如下所示:

foreach ($bund as $elem ) {
    // code here
    // The empty square brackets tells php to push the $elem value into the next available array key
    $va_body['bundles'][] = $elem;
}

答案 1 :(得分:0)

要获取点之后的值作为新键,您需要拆分字符串。因此,如果您使用格式为foreach($array as $key => $value)的foreach循环,则在点之后分割值

   foreach ($bund as $elem => $value) {
        $strings = explode('.', $elem); // Split the strings at the dot
        $ca_objects[$bundles][$strings[count(strings) - 1]] = $value; // Add to array with $elem => $value
    }