0

次の問題があります。

すべてのキーワードを 1 つの文字列に連結することはできません。配列を返します...何時間も試していますが、管理できていません。

コードは次のとおりです。

(if条件がループ中)

$keyword="";
$entry=0;

if ($index=="keywordterm){
            $kword=$arrObjData[$index]; // takes the value of keywordterm
            $kwords[$entry]=$kword;
            echo "keywords[$entry]: ".$kwords[$entry]."</br></br>";
            $keywordd.=$kwords[$entry]." | ";   
            $entry++;           
}
print_r($keywordd);
echo "Keywords: ".$keywordd."<br><br>";

結果:

keywords[1]: telecommunication computing

keywords[2]: multi-agent systems

keywords[3]: state estimation

keywords[4]: control engineering computing

keywords[5]: telecommunication control

keywords[6]: Matlab-Simulink platform

keywords[7]: networked multiagent systems

keywords[8]: information sharing

keywords[9]: multiple cooperative agents

keywords[10]: networked control system

Array ( )
Keywords: Array

私はこのようなものが欲しかった:

Keywords: telecommunication computing | multi-agent systems | state estimation.........

XML コードは次のとおりです。

<keywordset keywordtype="Inspec">
      <keyword>
        <keywordterm><![CDATA[computer aided manufacturing]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[semantic Web]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[factory automation]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[ontologies (artificial intelligence)]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[knowledge based systems]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[inference mechanisms]]></keywordterm>
      </keyword>
    </keywordset>
    <keywordset keywordtype="InspecFree">
      <keyword>
        <keywordterm><![CDATA[reconfigurable manufacturing systems]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[semantic Web services]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[factory automation]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[ontologies]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[explicit semantics]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[logical reasoning]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[autonomous manufacturing orchestration]]></keywordterm>
      </keyword>
      <keyword>
        <keywordterm><![CDATA[knowledge based systems]]></keywordterm>
      </keyword>
    </keywordset>

事前に感謝し、このloooongコードを申し訳ありません..

すべてのコードは次のとおりです。

$keywordd="";
$entry=0;
$kwords=array();
$xmlUrl = "9424.xml"; // XML feed file/URL

$xmlStr = file_get_contents($xmlUrl);

$xmlObj = simplexml_load_string($xmlStr);

$arrXml = objectsIntoArray($xmlObj, $entry, $keywordd);

function objectsIntoArray(&$arrObjData, &$entry, &$keywordd, $arrSkipIndices = array()) {

if (is_array($arrObjData)) {

    echo "<pre>";

        //print_r($arrObjData);
        echo "</pre>";  

        foreach ($arrObjData as $index => $value) {

if ($index=="keywordterm"&&$index!="0"){
            $kword=$arrObjData[$index];
            echo "<b>KEYWORD: </b>".$kword."</br></br>";
            $kwords[$entry]=$kword;
            echo "keywords[$entry]: ".$kwords[$entry]."</br></br>";
            $keywordd.=$kwords[$entry]." | ";
            //echo $keywordd."<br><br>";
            $entry++;
            //echo "entry: ".$entry."<br>";

        }
        elseif ($index=="joursec"&&$index!="0"){
            //print_r($keywordd);
            echo "<b>Keywords: </b>".$keywordd."<br><br>";
        }
}
}
4

2 に答える 2

1

$keywordd は文字列なので、print_r で印刷できませんか? 「echo $keywordd」だけを実行するとどうなりますか?

配列を文字列にするには、implode() を使用する必要がありますか?

例:

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
于 2012-07-16T18:14:31.600 に答える
0

implodeを使用してみましたか:

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(" | ", $array);
于 2012-07-16T18:21:03.123 に答える