0

古いデータを上書きせずに、配列にいくつかの詳細を追加する必要があります。

現時点では、print_r($ data)を使用すると、次のようになります。

 Array
 (
   [one] => Hello
   [two] => Hello World
 )

次に、配列にデータを追加する関数があります

 foreach ($rubric as $rs){
      if($rs['position']==1){$data['one']=$rs;}
  if($rs['position']==2){$data['two']=$rs;}
 }

print_r($ data)の場合、これにより次のようになります。

Array
(
   [one] => Array
      (
         [id] => 1
      )
   [two] => Array
      (
         [id] => 2
      )
)

誰かアイデアはありますか

私がやりたいのは…。

 foreach ($rubric as $rs){
      if($rs['position']==1){$data['one']['details']=$rs;}
  if($rs['position']==2){$data['two']['details']=$rs;}
 }

各配列アイテム内に「詳細」と呼ばれる新しいサブ配列を追加することを目的として...

それは理にかなっていますか?そのコードを実行しようとすると、次のエラーが発生します

PHPエラーが発生しました重大度:通知メッセージ:配列から文字列への変換

誰かが私が間違っていることを教えてもらえますか?

4

3 に答える 3

1

array_pusharray_unshift を参照して ください

配列プッシュは、要素を最後に配置します。配列のシフト解除により、配列の先頭に数値が追加されます。

構造を使用することもできます

$myArray['nameOfNewElement']=$newElement;

これにより、$newElementが配列$myArrayに追加されます。

于 2012-08-21T17:28:00.330 に答える
1

array_mergeを使用できます。

あなたの質問によると、ここに解決策があります:

// sample array
$rubric = array(0=> array("position"=>1),1 => array("position"=>2));
$data = array("one" => "Hello","two" => "hello world");
foreach ($rubric as $rs){
      if($rs['position']==1){
           $d= array_merge($data,$rs);
      }
      if($rs['position']==2){
          $d= array_merge($data,$rs);
      }
 }
print_r($d);

ここに動作するデモがあります: http://codepad.org/rgKiv542

うまくいけば、それはあなたを助けるでしょう.

于 2012-08-21T17:38:05.107 に答える
0

を書くとき$data['one'] = $rs;は、値を上書きするために$rsを割り当てています"Hello"

おそらくあなたがやろうとしていたことは

$data['three'] = $rs['id'];
于 2012-08-21T17:26:51.263 に答える