Php 从xml构建关联数组时遇到问题

Php 从xml构建关联数组时遇到问题,php,arrays,xml,Php,Arrays,Xml,我正试图从XML构建一个关联数组。以下是xml的外观(总共约70个“item”条目): 我正在尝试构建一个关联数组,如下所示: $new_array = array(array("name"=>name, "value"=>value),array("name"=>name, "value"=>value),array("name"=>name, "value"=>value), etc); 它不起作用了。我试图打印数组以查看它是否已形成,但我得到了一个0

我正试图从XML构建一个关联数组。以下是xml的外观(总共约70个“item”条目):

我正在尝试构建一个关联数组,如下所示:

$new_array = array(array("name"=>name, "value"=>value),array("name"=>name,  "value"=>value),array("name"=>name, "value"=>value), etc);
它不起作用了。我试图打印数组以查看它是否已形成,但我得到了一个0-array、1-array等的列表

我还尝试了
array\u merge()、$new\u array[]=$item和array\u push($new\u array,array(“name”=>name,“value”=>value))

有没有更好的方法将关联数组附加到数组上?i、 比如python中的
array.append(dict)
?多谢

试试看

$data = file_get_contents("xml url");
$xml = simplexml_load_string($data);
$counter = 1;
$new_array =[];
foreach($xml->children() as $item)
{
    $new_array[$counter]['name'] = $item->name;
    $new_array[$counter]['value'] = $item->value;
    $counter += 1;              
}

将xml中每个
中的
名称和
值添加到数组中的可能解决方案是,首先检查
$item->getName()
是否为“item”

然后,您可以使用将新数组添加到
$new\u数组中

例如:

$data = file_get_contents('xml url');
$xml = simplexml_load_string($data);
$new_array = array();

foreach($xml->children() as $item) {
    if ($item->getName() === "item") {
        array_push(
            $new_array, [
                "name" => $item->name->__toString(),
                "value" => $item->value->__toString()
            ]
        );
    }
}

var_dump($new_array);
将导致:

array (size=2)
  0 => 
    array (size=2)
      'name' => string 'Name' (length=4)
      'value' => string '24' (length=2)
  1 => 
    array (size=2)
      'name' => string 'Name' (length=4)
      'value' => string '24' (length=2)
$data = file_get_contents('xml url');
$xml = simplexml_load_string($data);
$new_array = array();

foreach($xml->children() as $item) {
    if ($item->getName() === "item") {
        array_push(
            $new_array, [
                "name" => $item->name->__toString(),
                "value" => $item->value->__toString()
            ]
        );
    }
}

var_dump($new_array);
array (size=2)
  0 => 
    array (size=2)
      'name' => string 'Name' (length=4)
      'value' => string '24' (length=2)
  1 => 
    array (size=2)
      'name' => string 'Name' (length=4)
      'value' => string '24' (length=2)