2016-10-12 3 views
1

정규 배열 (변환하지 않음)에서 연관 배열을 푸시해야합니다.
예 (NO CODE)
일반 배열의 PHP 푸시 연관 배열

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

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

이 방법은 무엇입니까? I'v이 시도하지만, 서버는 말한다 : 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; 
    } 
+0

'$ 프로젝트 [] = $ 요소,'? –

+1

물건을 혼동합니다 : 물건은 배열과 다른 것입니다. '->'연산자는 객체 안의 프라퍼티를 참조하지만 선언적으로는 불가능합니다. 또한 간단한'$ projects = {};를 사용하여 객체를 생성하는 것은 불가능합니다. 이것은 구문 오류 (오류 500)입니다. 대신에 일반적으로 객체를 인스턴스화 할 수있는 클래스를 구현해야합니다. []와 (과) – arkascha

답변

4

$projects = {};이 유효 PHP는 없습니다. 당신이 (중요하지 않습니다 연관 또는 숫자)는 하늘의 배열을 초기화하려면

, 다음이 필요합니다

$projects = []; 

이상 PHP 버전 :

$projects = array(); 

는 또한 주 그 각 반복의 시작 부분에서 동일한 배열을 $elements 배열에 적용해야합니다. 그렇지 않으면 모든 반복마다 증가합니다. ... 설명이 모두 같은 아니라는 것을

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

그리고 당신의 while 루프를 가정하면 많은 의미를 만들기 위해 보이지 않는다 : 당신은 너무 똑같이 할당을하고 루프에 $i 변수를 사용하지 않는 각 반복마다.

+0

작품 ... 나는 바보, 고마워요! – ProtoTyPus

0
$projects = []; // declare empty array 
foreach($projectsElements as $element) { 
    $projects []= $element; // push $element into $projects array 
} 
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; 
}