2016-10-12 10 views
1

通常の配列(変換しない)で連想配列をプッシュする必要があります。
例(NO CODE):
通常の配列のPHP push associative配列

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; 
}