1

<>2 つの区切り記号で爆発して 2 つの foreach ループを取得しようとして"\n"いますが、エラーが発生します。Warning: Invalid argument supplied for foreach()

これが私のコードです

<?php

    $specifications = $scooter_meta->get_the_value('specifications');

    $titles = explode('<>', $specifications);

    $descs = explode("\n", $specifications);

    echo '<dl>';

    foreach($titles as $title => $descs){

        echo '<dt>' . $title . '</dt>';

        foreach($descs as $desc){
            echo '<dd>' . $desc . '</dd>';
        }

    }

    echo '</dl>';

?>

このようなテキストエリアに入力する値Title here<>this is the first scooter ever made. Title here 2<>another line for specification実際には次のようにしたいと思います<title 1> here detail text

どうもありがとう

4

3 に答える 3

2

実際には、このようなことをする必要があります

<?php

$specifications = $scooter_meta->get_the_value('specifications');

$descs = explode("\n", $specifications);

echo '<dl>';

foreach($descs as $desc){

    $title = explode('<>', $desc);

    echo '<dt>' . $title[0] . '</dt>';
    for($i=1; $i<=count($title); $i++){
        echo '<dd>' . $title[$i] . '</dd>';
    }

}

echo '</dl>';

?>
于 2012-08-16T10:28:11.530 に答える
2

最初の$descsforeach ループで が設定されるため、変数は配列ではありません$descs

この行を参照してください:

foreach($titles as $title => $descs){
于 2012-08-16T10:24:02.127 に答える
1
$specifications = $scooter_meta->get_the_value('specifications');

$titles = explode('<>', $specifications);

echo '<dl>';

foreach($titles as $title => $descs){

    echo '<dt>' . $title . '</dt>';

    $descs = explode("\n", $descs);

    foreach($descs as $desc){
        echo '<dd>' . $desc . '</dd>';
    }

}

echo '</dl>';
于 2012-08-16T10:26:27.910 に答える