$word = "$1,$2,$3,$4,";
上記の場合要素数は4だと思うのですが
その数値をを求めたいのです。
countでは上手くとれません。
間違っているだけかもしれまえせんが
上記の$wordの要素数を取得する方法を教えてください。
$x = count(split(',', trim($word, ',')));
これはどうでしょう。
$word を配列にしたい場合は array() を使って代入します。
$word = array($a,$b,$c,$d);
echo count($word);
$word を文字列のまま使いたい場合は explode() で一旦配列にしてから count() すればいいと思いますよ。
$word = "$a,$b,$c,$d,";
echo count( explode(",",$word) );
ただ代入しただけでは配列になっていないということですね。
凄く初歩的なことみたいですね。
ありがとうございます。
デリミタ(区切り文字)の数+1が要素数ですから、
$word = "$1,$2,$3,$4,";
の要素数は5です。
countは配列の要素数を数えるものですからsplitなどで配列に変換すれば数えることが可能となります。
$a = split(",",$word)
$b = count($a);
後々使いまわす予定が無いのであれば
$b = count(split(",",$word));
そもそも$word自体が配列になっていなかったということですね。
初歩的な所だったみたいです。
とても参考になりました。
ありがとうございます。
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でも対応できるみたいですね。
もしくはその都度足していくというのは
なかなか面白そうです。
ありがとうございました。
カンマの数を数えたいだけなら
$count = strlen(preg_replace('/[^,]/', '', $word));
で取れますよ。
なるほど。
カンマの数だけ数えても同等の数値が得られますね。
ありがとうございました。
なるほど。
PHPのサイトはあまり見ていませんでしたが
これだけでもかなり有用ですね。
ありがとうございました。