установка значения атрибута для его ключа массива в php - PullRequest
0 голосов
/ 10 ноября 2010

(после удаления узла XML) следующее получает список значений атрибута '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);

, который возвращает следующее:

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

Я хочу установить для каждого идентификатора значение текущего ключа следующим образом:

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

Я возился сэто ненадолго, но я подумал, есть ли простой способ добиться этого?

1 Ответ

1 голос
/ 10 ноября 2010

Если вы явно назначите индексные ключи и используете 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.
}
...