人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでの質問です。
$word = "$1,$2,$3,$4,";
上記の場合要素数は4だと思うのですが
その数値をを求めたいのです。
countでは上手くとれません。
間違っているだけかもしれまえせんが
上記の$wordの要素数を取得する方法を教えてください。


●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP Word 素数
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● cynix
●20ポイント
$x = count(split(',', trim($word, ',')));

これはどうでしょう。

http://php.net/trim

http://php.net/split

http://php.net/count

◎質問者からの返答

なるほど。

PHPのサイトはあまり見ていませんでしたが

これだけでもかなり有用ですね。

ありがとうございました。


2 ● lovemaker
●23ポイント

$word を配列にしたい場合は array() を使って代入します。

$word = array($a,$b,$c,$d);

echo count($word);

$word を文字列のまま使いたい場合は explode() で一旦配列にしてから count() すればいいと思いますよ。

$word = "$a,$b,$c,$d,";

echo count( explode(",",$word) );

◎質問者からの返答

ただ代入しただけでは配列になっていないということですね。

凄く初歩的なことみたいですね。

ありがとうございます。


3 ● kn1967
●20ポイント

デリミタ(区切り文字)の数+1が要素数ですから、

$word = "$1,$2,$3,$4,";

の要素数は5です。

countは配列の要素数を数えるものですからsplitなどで配列に変換すれば数えることが可能となります。

$a = split(",",$word)

$b = count($a);

後々使いまわす予定が無いのであれば

$b = count(split(",",$word));

◎質問者からの返答

そもそも$word自体が配列になっていなかったということですね。

初歩的な所だったみたいです。

とても参考になりました。

ありがとうございます。


4 ● goxu
●21ポイント

count() は配列でないと使えないです。ですのでいったん配列にしてみて count() 使用してみてはどうでしょうか? explode でコンマごとに文章を区切って配列に格納できます。

$number = explode(",", $word);

echo count($number);

もしくは、.= を使用してそのつど、数を足していくとか。

$word = "$1,$2,$3,$4,";

これを

$number = 0;

$word = "$1,";

$number++;

$word .= "$2,";

$number++;

$word .= "$3,";

$number++;

$word .= "$4,";

$number++;

にするとか。

◎質問者からの返答

explodeでも対応できるみたいですね。

もしくはその都度足していくというのは

なかなか面白そうです。

ありがとうございました。


5 ● ito-yu
●20ポイント

カンマの数を数えたいだけなら

$count = strlen(preg_replace('/[^,]/', '', $word));

で取れますよ。

◎質問者からの返答

なるほど。

カンマの数だけ数えても同等の数値が得られますね。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ