0

私は現在、foreachを使用して配列をループしようとしているphpプロジェクトに取り組んでいます。ただし、配列に含まれるアイテムが1つしかない場合があるため、foreachを実行しようとすると、1つのアイテムが正規変数と見なされるため、失敗します。

このエラーが発生しないように、phpをだまして1項目の配列が実際には変数ではなく配列であると思わせる方法はありますか?

ご協力いただきありがとうございます。

4

3 に答える 3

5

foreachサイズが 0,1 以上の配列で問題なく動作します。あなたの問題は、変数に実際には配列が含まれていないが、いくつかのスカラー値が含まれていることだと思います-この場合、次のようなものを使用します

if (!is_array($var)) $var=array($var);
foreach ($var as $item) {
  //...
}
于 2012-06-10T22:49:18.257 に答える
0
if(is_array($arr))
    $arr2=$arr
else
    $arr2=array($arr)

そして、あなたは繰り返します$arr2

于 2012-06-10T22:49:23.863 に答える
-2

標準の for ループを使用することをお勧めします。配列の長さに関係なく機能するはずです

for($i = 0, $l = count($myArray); $i < $l; $i+=1){
  //code in here
}

しかし、最初にアレイに問題がある可能性があります。構造体を投稿すると役に立ちます。または、それが実際に配列であることを確認するために、それを var_dump する必要があります。

于 2012-06-10T22:49:00.970 に答える