ここから本文です

for文、またはwhile文は配列(または連想配列)には使えないんですか?

alt********さん

2019/6/720:25:17

for文、またはwhile文は配列(または連想配列)には使えないんですか?

閲覧数:
27
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shi********さん

2019/6/722:41:57

使えません(キーがわからないので)

元の配列を壊していいなら

$arr = ['a'=>11, 'b'=>22, 'c'=>33];
while (count($arr) > 0) { echo array_shift($arr) . "<br>"; }

のようなアクセスの方法も採れないわけではありませんが、意味はないですよね。

  • shi********さん

    2019/6/811:57:22

    ちなみに連想配列ではなく数字添え字の配列であれば、キーが 0 ~ count(配列-1 までと自明なので

    $arr = ['a', 'b', 'c'];
    for ($i=0; $i < count($arr); $i++) {
    print $arr[$i] . "<br>";
    }

    のように書けます。

    ただ一般的にはキーがどちらでも処理できるように

    foreach ($arr as $val) {
    echo $val . "<br>";
    }

    ですね。$arr[$i] よりも $val で扱う方が楽ですしね。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

tez********さん

2019/6/723:18:19

> 配列(または連想配列)には使えないんですか?
配列をどうしたいのかに依りますが、使えない訳ではありません。
質問者さんのが考えている事を明確にしてもらわないと的確な回答にはなりません。
__質問者さんの過去質問を調査するのは正直面倒


例えば、以下の様に配列を利用する事は可能です。

$ary = array('I', 'my', 'me', 'mine');
for ($i=0; $i<count($ary); $i++) { echo $ary[$i]; }

とか

$ary = array('one'=>'Scott', 'two'=>'Virgil', 'three'=>'Alan', 'four'=>'Gordon', 'five'=>'John');
$i=0;
$keys = array_keys($ary);
while(isset(array_keys($ary)[$i])) {
echo $ary[$keys[$i++]] . '<br />';
}

無駄が無いかとか、解り易いかどうかは、疑問がありますが。

mei********さん

2019/6/721:48:47

使えるかどうか知りませんが、
phpには、foreach文があるので、配列はこちらの方が便利でしょう。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる