2017-04-10 3 views
-1

私はそれぞれの説明を持つユーザーがいて、配列にこれらの説明を追加したいと思います。次に、配列を読み込み、各説明を分割し、結果を変数として設定します。例の説明は次のようになります。配列に追加して項目を出力する方法は?

italian, mexicanまたはfrench, american

これは私が現在やっているものです:

<?php 
    $stack = array(); 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     array_push($stack, $user->user_description); 
    } 
    $out = array_map('trim', explode(',', $stack)); 
?> 

それから私は

<ul> 
    <li><?php echo $out[0]; ?></li> 
    <li><?php echo $out[1]; ?></li> 
    <li><?php echo $out[2]; ?></li> 
    <li><?php echo $out[3]; ?></li> 
</ul> 

を行うしかし、私は結果値のリストを得ます

UPDATE

あなたのループがフィンになった後、あなたが$stackで見てみるならば、

<li><?php echo $stack[0]; ?></li> 
<li><?php echo $stack[1]; ?></li> 
<li><?php echo $stack[2]; ?></li> 
+1

なぜあなたは$ stackを爆発させますか?私はあなたがuser_descriptionを爆発させる必要があると思う。 – jh1711

+0

私は説明の中の各単語をトリミングして爆発させたいので、イタリア語、アメリカ語... –

+0

@ jh1711 try \t $ stack = array(); \t $ blogusers = get_users( 'orderby = nicename&role = author'); \t foreach($ blogusers $ user){ \t \t $ users = array_map( 'trim'、explode( '、'、$ user-> user_description)); \t \t array_push($ users、$ stack); \t}次にecho $ stack [0]; –

答えて

3

:あなたが実際にあなたがexplode()それをすることができますが、ページへの出力配列をすることはできません、別の変数でこれが必要な場合は

<?php 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     $out[] = $user->user_description; 
    } 
?> 
<li><?=$out[0]?></li> 
<li><?=$out[1]?></li> 
<li><?=$out[2]?></li> 
... 

:私は何がやりたいことは、このだと思いますそれぞれの記述を爆発させてから、爆発によって返された要素のそれぞれを配列にプッシュしてください。これは、重複を気にしないことを前提としています。

$stack = array(); 
$blogusers = get_users('orderby=nicename&role=author'); 
foreach ($blogusers as $user) { 
    $descTokens = explode(',', $user->user_description); 
    $stack = array_merge($stack, $descTokens); 
} 

<li><?php echo $stack[0]; ?></li> 
<li><?php echo $stack[1]; ?></li> 
<li><?php echo $stack[2]; ?></li> 
+0

素晴らしい、素敵でシンプルです。ありがとうたくさん –

+2

あなたはループの代わりに 'array_merge()'を使うことができます。 – miken32

+0

いいえ、それは私が統計を作成するためにこれをすべてやっているので、配列の値が繰り返されているのは実際には良いことです。実際には同じ値の総数を得る方法はありますか? 「2」のようなイタリア語? –

2

$stack = array(); 
$blogusers = get_users('orderby=nicename&role=author'); 
foreach ($blogusers as $user) { 
    $users = array_map('trim', explode(',', $user->user_description)); 
    array_push($stack, $users); 
} 

を試してみましたこれを実行する場合を通じて、あなたがそれに配列を渡しているので、何かを得るつもりはない、爆発

<?php 
$stack = [ 
    "italian, mexican", 
    "french, american", 
    "canadian, irish", 
]; 

:ished、あなたはこれと同等のものを持っています。実際に、適切なエラー報告が設定されていれば、文字列の代わりに配列を渡すことに関する警告が表示されます。

<?php 
    $blogusers = get_users('orderby=nicename&role=author'); 
    foreach ($blogusers as $user) { 
     $out[] = explode(",", $user->user_description); 
    } 
?> 
<li><?=$out[0][0]?></li> 
<li><?=$out[0][1]?></li> 
<li><?=$out[1][0]?></li> 
<li><?=$out[1][1]?></li> 
... 
+0

それでも問題はありませんが、それぞれの説明に記載されているように、それぞれの記述を別々の出力として持つことはできません「イタリア人、アメリカ人」などです。私はこれらの単語のそれぞれを分割し、別のリストとしてそれらをリストできるようにする必要があります –

+0

はすでに更新されています! – miken32

+0

非常に感謝していますが、これはうまくいきましたが、私がやっていたことに近いので、他の答えを受け入れました。 –

関連する問題