2012-03-05 10 views
1

私はwhileループを持っている、これは完璧に動作しますので....

 while ($fruit_name = current($data)) { 
      $string1 .= "'".key($data)."',"; 
      next($data); 
     } 

ようになり、そしてエコー:

'derp','test' 

配列データ=

Array ([derp] => 68 [test] => 1) 

が、 、配列データ=

Array ([derp] => 0 [test] => 0) 

echos

nothing, 

何ですか?あなたは以来eachを使用する必要があり、手動で配列をトラバースする場合

while (($fruit_name = current($data)) !== false) { 
    $string1 .= "'".key($data)."',"; 
    next($data); 
} 
+0

foreachを使用して引用符を囲み、コンマで結合する方がよいでしょう。 – loganfsmyth

答えて

1

PHPを使用して、タイプに敏感な比較を行うために必要となる0を許可するようにwhileループを終了falseとして0をカウントあなたが見つけたように、負の結果をcurrentと偽値と区別する方法はありません。 === falseで確認する場合でも、配列にfalseのエントリが含まれていると失敗します。

しかし、あなたは本当にだけではなく、foreachを使用する必要があります。

foreach ($data as $k=>$fruit_name) { 
    $string1 .= "'". $k . "',"; 
} 
0

あなたは自分の配列のキーのカンマ区切りのリストが必要な場合は、関係なく、その値の、implodearray_keysの組み合わせが良いかもしれませんアプローチ

関連する問題