PHP推送关联数组在普通数组中

时间:2016-10-12 11:56:01

标签: php arrays multidimensional-array associative-array

我必须在正常数组中推送一个关联数组(不要转换) 示例(无代码):

project = {}
element["title"] = "My title"
element["description"] = "My description"

有没有办法让这个

echo $project->title;
//or
echo $project[0]["title"]

? 我试过这个,但服务器说:ERROR 500

    $i = 0;
    $projects = {};
    foreach($projectsElements as $element) {
        while($i <= $nRowsForProject) {
            $idSection = $element->idSection;
            if($idSection == 1) $elements["".$element->internalDescription.""] = $element->text;
            else if($idSection == 2) $elements["".$element->internalDescription.""] = $element->text;
            else if($idSection == 3) $elements["".$element->internalDescription.""] = $element->text;
            $i++;
        }
        array_push($projects,$elements);
        $i=0;
    }

3 个答案:

答案 0 :(得分:4)

$projects = {};无效php。

如果要初始化一个空数组(关联或数字,无关紧要),您需要:

$projects = [];

或旧的PHP版本:

$projects = array();

另请注意,您需要在每次迭代开始时对$elements数组执行相同操作,否则它将在每次迭代时增长。假设描述不完全相同......

foreach($projectsElements as $element) {
    $elements = [];
    while($i <= $nRowsForProject) {
        ...

你的while循环似乎没有多大意义:你没有在循环中使用$i变量,所以只是在每次迭代时都做相同的赋值。

答案 1 :(得分:0)

$projects = []; // declare empty array
foreach($projectsElements as $element) {
  $projects []= $element; // push $element into $projects array
}

答案 2 :(得分:0)

$i = 0;
$projects = array();
foreach($projectsElements as $element) {
    while($i <= $nRowsForProject) {
    $elements = array();
        $idSection = $element->idSection;
        if($idSection == 1) $elements["".$element->internalDescription.""] = $element->text;
        else if($idSection == 2) $elements["".$element->internalDescription.""] = $element->text;
        else if($idSection == 3) $elements["".$element->internalDescription.""] = $element->text;
        $i++;
    }
    array_push($projects,$elements);
    $i=0;
}