用于创建多二元数组的构造结构看起来如何良好



我正在尝试创建创建多维数组的构造函数。我的结果应该是这样的:-

签出我的数组 $result_array

现在我有错误:非法偏移类型。请注意,我让 als 使用 __toString(( 因为我在处理 xml 数据。

class Property {
public $xmlClass;
public $elemClass = '';
public $first_array = array();
public $result_array = array();
public $data = '';
public $data2 = '';
public function __construct($xml, $elem) {
$this->xmlClass = $xml;
$this->elemClass = $elem;
foreach ($xml->xpath('//*[@baza]') as $val) {
$this->first_array[] = $val;
foreach ($val->ksiazka as $value) {
$data = $value->$elem->__toString();
$this->result_array[$this->first_array][] = $data;
}
}
}
public function getResult() {
return $this->result_array;
}
}
$result_autor = new Property($xml, 'autor');
$autor = $result_autor->getResult();

您需要更改两个foreach(),如下所示:-

foreach($xml->xpath('//*[@baza]') as $val) {
//$this->first_array[] = $val; not needed
foreach($val->ksiazka as $key=> $value){ //check $key here
$data = $value->$elem->__toString();
$this->result_array[$key][] = $data; // add $key hear
}
}

如果上述方法不起作用,则也请检查此内容:-

foreach($xml->xpath('//*[@baza]') as $key=> $val) { //check $key here
//$this->first_array[] = $val; not needed
foreach($val->ksiazka as $value){ 
$data = $value->$elem->__toString();
$this->result_array[$key][] = $data; // add $key hear
}
}

相关内容

最新更新