在php中将属性值设置为其数组键

时间:2010-11-10 10:37:02

标签: php arrays key set

(在删除XML节点之后)以下获取< picture>的列表。 'id'属性值:

$objXML = new SimpleXMLElement(XML_FILE_NAME, null, true);
$picture = $objXML->xpath('picture');
$arrayCurrent = array();
foreach($picture as $value) {
    $arrayCurrent[] = (string)$value['id'];
}
sort($arrayCurrent); // required as XML nodes not in numerical 'id' order
print_r($arrayCurrent);

返回以下内容:

数组([0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 5 [5] => 6 [6] => 7 [7] => 8)

我想将每个id设置为当前键的值,如下所示:

数组([0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7)

我一直在搞乱这个问题,但我想知道是否有一种简单的方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

如果你明确指定索引键并使用asort,我想你会得到你想要的东西。

...
foreach($picture as $value) {
    $arrayCurrent[$value['id']] = (string)$value['id'];
}
asort($arrayCurrent); // required as XML nodes not in numerical 'id' order
...

<击>

第二次尝试..仍然不确定我理解你,但是嘿:)而不是foreach循环:

for($i = 0; $i < sizeof($picture); $i++)
{
  $picture[$i]['id'] = $i;
  $arrayCurrent[$i] = $i; // Not sure why you'd still want this, in this case.
}