電子書籍の厳選無料作品が豊富!

私はよくperlで
for ($i=0; $i<=$#hoge; $i++) {}
などと書いたりするのですが、phpで同じようにしたいのですが、
その際、perlの配列最後の添字を返す$#hogeにあたるものはないものなのでしょうか?
あくまでforeachなど別の方法論や複数行ロジックを書いて取得するなどではなく配列の最後の添字を簡単に取得できるかが問題なのです。

A 回答 (5件)

count()



使い方は count() PHP とかで検索すべし。

この回答への補足

タイトルが悪いのかもしれませんが、要素の数ではなく、最後の添え字を取得したいのです。

補足日時:2007/10/02 12:23
    • good
    • 0

#4 です。


キーとして使われる最大の数値を求めればいいということなら、

<?php
$ary[1]=10;$ary[3]=100;$ary[7]=10000;$ary[5]=1000;
print(count($ary));
print("\n");
print(end($ary));
print("\n");
print(key($ary));
print("\n");
print(end(array_keys($ary)));
print("\n");
print(max(array_keys($ary)));

4
1000
5
5
7

max が使えなくもないですね。
    • good
    • 0

PHPの配列はすべてPerlで言うところのハッシュなので、


質問者さんの求めるようなことを、お手軽に
行うことはできないと思います。

たとえば
<?php
$ary[1]=10;$ary[3]=100;$ary[7]=10000;$ary[5]=1000;
print(count($ary));
print("\n");
print(end($ary));
print("\n");
print(key($ary));
print("\n");
print(end(array_keys($ary)));

こんなのがあったとしてその実行結果は

4
1000
5
5

です。

質問で求められているのはここで、"7" を
得ることだと思うのですが、これを求めるような
関数はなかったように記憶しているのですが
違いますでしょうか?
    • good
    • 0

end(array_keys($hoge));


じゃないでしょうか?
    • good
    • 0

perlをしっかり理解していないので見当はずれかもしれませんが、


配列の添字というのはPHPでは配列のキーと呼ぶものに当たりますよね。

配列の最後は end()で取得出来、キーはkey()で取得出来るので、
key(end($hoge));
と言う事になるでしょうか。

for ($i=0; $i<=$#hoge; $i++) {}
はPHPでは、
$c = count($hoge);
for ($i=0; $i<$c ; $i++) {}
あたりが#1さん指摘の通り、一般的じゃぁないかと。

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!