の原因となります。これは私が試したコードです:は奇妙な行動
//$data is SimpleXML object from $datas.
//$datas is SimpleXML object contains "Module" elements:
$menu[] = $data;
いいえ運:まだエラーが発生します。私はforeachを使って$データを取得します。だから。私はforeach((array) $datas->Module as $data)
を試しました。運もありません。
$menu = array_map(function($data) {
return data;
}, $datas->Module);
多分この非常識なソリューションが、私はあまりにも(array)
、そして運を追加しました。
$i=0; $menu = [];
foreach($datas as $data){
$menu[$i] = $data;
$i++;
}
array_push($menu, $data);
すべてが無駄にT^Tです。それを正しく行う方法、配列にSimpleXMLオブジェクトを追加する(押し込む)?
EDIT
XML文字列:
<Module name="Administrative Task" url="Admin" icon="glyphicon glyphicon-list-alt" rule_name="url_administrative" rule_min="R">
<Submodule name="User Management" url="User">
<Proccess name="Add New" url="New"/>
</Submodule>
</Module>
<Module name="Lisencing Systems" url="Lisensi" icon="glyphicon glyphicon-book" rule_name="url_licensing" rule_min="RWUD">
<Submodule name="User Management" url="User">
<Proccess name="Add New" url="New"/>
</Submodule>
</Module>
あなたの 'array_map'行では、' $ datas-> Module'を渡しています。これは配列ではなく、SimpleXMLElementオブジェクトです。 '$ menu [] = $ data'行は、' foreach'のようにうまくいくはずです:https://3v4l.org/0HIKE – IMSoP
私はあなたが与えたエラーを実際に再現することはできません。 [mcve]を含めるように質問を編集して、エラーがどこから来ているのか理解できるようにしてください。 – IMSoP
質問を更新しました。私はPHP 5.6.1を使用していますが、これは私のPHPエンジンに関連していますか? – Kekesed