2011-12-31 24 views
3

なぜこれは機能しませんか?

$slidetotal=1;  
$slideids = array(); 
    while ($rowcs = mysql_fetch_array($orig_slides_result)) { 
    $key = $slidetotal; 
    array_push($slideids[$key], $rowcs['id']); 
    $slidetotal++; 
    } 

私はこのエラーを取得: [phpBBのデバッグ] PHPのお知らせ:ライン161上のファイル/ // * .PHPで:array_push()[function.array-プッシュ] :最初の引数は、配列にする必要があります

誰かが、あなたがこのページでこれを行うことができますコメントしているものの: http://php.net/manual/en/function.array-push.php、(見つける:「配列にペア 『『=>』$値$キー」を挿入する』)

php配列に単一の値のリストを挿入する次善の方法はありますか?ちなみに、google.comでこれを見つけるのは難しいとは本当に信じられません。真剣に?

+1

そのコメントはフラットアウト間違っています。キーと値のペアを 'array_push()'で配列にプッシュすることはできません。 – BoltClock

+0

私はarray_push()を試してみる前に、私はTim Cooperとosonerによると、おそらく正しいと思われることをやっていました。 – Patrick

+0

おそらく、私は配列を正しく作っていますが、変数を正しく取得していないことがあります。これは正しいですか? $ id = $ slidesids [$ i ']; – Patrick

答えて

6

PHP.netのコメントは間違っています。つまり、$rowcs['id']を配列ではなく、配列$slideids[$key]にプッシュしています。

あなたのarray_push()コールの代わりに、次の操作を実行する必要があります。

$slideids[$key] = $rowcs['id']; 
+0

それはまさに私がそれを探し出す前にもともと試したことです。 (私は$キーとして$ slidetotalを再定義しなかったことを除いて)配列から変数を取り出すことができなかったことを除いて何が間違っているのか分かりません。 – Patrick

+0

おそらく私はそれを正しく取得していません。これは正しいですか? $ id = $ slidesids [$ id ']; – Patrick

0

あなたがいないのはなぜ。

$slidetotal=1;  
$slideids = array(); 
while ($rowcs = mysql_fetch_array($orig_slides_result)) { 
    $slideids[$slidetotal] = $rowcs['id']; 
    $slidetotal++; 
} 

また、キーが1から始まる必要がない場合は、次のようにすることもできます。

$slideids = array(); 
while ($rowcs = mysql_fetch_array($orig_slides_result)) { 
    $slideids[] = $rowcs['id']; 
} 
0

ハード検索はGoogleのために働くだろううーん、私はとにかく:) を考えて、エラーがあなたが知る必要があるすべてを伝えます。つまり、array_pushの最初の引数が配列でない場合、array_push($ slidesids [$ key])に単一の値(文字列)を与えます。 また、なぜPHPでarray_pushを使用する必要がありますか?私はむしろ

$slideids[] = $rowcs['id']; 

を使用し、あなたが何をしようとしていることはあると思います:

$slideids[$key] = $rowcs['id']; 

私は推測する...

関連する問題