2012-02-08 13 views
0
私はと呼ばれる自分のページ上の変数を持って

、次のようにあなたが持っているVAR内部$recipe['ingredients'];PHP - 配列をチャンクに分割します。

100ミリリットルの牛乳、350ミリリットルダブルクリーム、150ミリリットルの水

のように。今、私は

<ul> 
    <li>100ml milk</li> 
    <li>350ml double cream</li> 
    <li>150ml water</li> 
</ul> 

これまでのところ、私は、次のコードを持っている

$ingredientsParts = explode(',', $row_rs_recipes['ingredients']); 
$ingredients = array($ingredientsParts); 
while (! $ingredients) { 
    echo" <li>$ingredients</li>"; 
} 

しかし、いくつかの理由で、それは動作しませんし、私が持っていないが、以下のように見える、それを分割しようとしていますそれを修正するために爆発の経験。

+0

をPHPの '')(爆発配列を返します。http://php.net/manual/en/ function.explode.php – bzx

+0

'$ ingredients = array($ ingredientsParts);' これは必要ありません。 'ingredientsParts'はすでに爆発した後の配列です。 私は個人的に 'for'や' foreach'ループを使って配列全体を走査しますが、それはあなた次第です。私はそれがこの 'while'の条件で実行できるかどうかはわかりません。配列の内部ポインタを '!$ ingredients'で参照しようとしていますか? –

答えて

1
  1. から空白を削除するecho '<li>' . trim($ingredient) . '</li>';を使用自動的に配列に変換されます。 2行目と同じように配列型に変換する必要はありません。
  2. whileループではなく、配列を反復処理するためにforeach()ループを使いたいとします。実際に

    $ingredientsAry = explode(',', $row_rs_recipes['ingredients']); 
        foreach($ingredientsAry as $ingredient){ 
         echo "<li>$ingredient</li>"; 
        } 
    

あなただけの爆発()値

foreach(explode(',', $row_rs_recipes['ingredients']) as $ingredient){ 
    echo "<li>$ingredient</li>"; 
} 
+0

あなたはコンマの後にスペースを忘れました – bzx

+0

@bzxこれは分割文字であるため、 '、'のみに分割するのは節約です。文字列 'foo、bar、foobar'をイメージ化します。スペースが含まれていた場合、この文字列は適切に分割されません。 – Yoshi

+0

これは説明的です。 –

2

これは十分にする必要があります:それは)、文字列、それは','によってexplode

$ingredientsParts = explode(', ', $row_rs_recipes['ingredients']); 

foreach ($ingredientsParts as $ingredient) 
{ 
    echo "<li>$ingredient</li>"; 
} 

たりすることができますし、(を爆発すると、その文字列の先頭/末尾

3
$ingredientsParts = explode(',', $row_rs_recipes['ingredients']); 
    $li = '<ul>'; 
    foreach($ingredientsParts as $key=>$value){ 
     $li.=" <li>$value</li>"; 
    } 
    $li.= '</ul>'; 

echo $li; 
0

上のforeach()ループは、メソッドが既に配列を返す爆発するんすることができますので、あなたはしないでください変数$ ingredientsPartsを配列に変換する必要があります。

だけで実行します。あなたがこれを行うことができます

$ingredientsParts = explode(', ', $row_rs_recipes['ingredients']); 
foreach ($ingredientsParts as $ingredient) 
{ 
echo "<li>$ingredient</li>"; 
} 
0
if (!empty($recipe['ingredients'])) { 
    echo '<ul><li>' . implode('</li><li>', explode(', ', $row_rs_recipes['ingredients'])) . '</li></ul>'; 
} 
0

を:

$ingredients = explode(',', $row_rs_recipes['ingredients']); 

$list = '<ul>'; 

foreach ($ingredients as $ingredient) 
{ 
    $list .= '<li>' . $ingredient . '</li>'; 
} 
$list .= '</ul>'; 

echo $list; 
関連する問題