Обновить массив

$ var - это массив:

Array (
 [0] => stdClass Object ( [ID] => 113 [title] => text )
 [1] => stdClass Object ( [ID] => 114 [title] => text text text )
 [2] => stdClass Object ( [ID] => 115 [title] => text text )
 [3] => stdClass Object ( [ID] => 116 [title] => text )
)

Хотите обновить его в два этапа:

  • Получить [ID] каждого объекта и выбросить его значение для счетчика позиции (я имею в виду [0], [1], [2], [3] )
  • Удалить [ID] после выброса

Наконец, обновленный массив ( $ new_var ) должен выглядеть так:

Array (
 [113] => stdClass Object ( [title] => text )
 [114] => stdClass Object ( [title] => text text text )
 [115] => stdClass Object ( [title] => text text )
 [116] => stdClass Object ( [title] => text )
)

Как это сделать?

Спасибо.

11
задан Chuck Le Butt 10 June 2016 в 16:50
поделиться

2 ответа

$new_array = array();
foreach ($var as $object)
{
  $temp_object = clone $object;
  unset($temp_object->id);
  $new_array[$object->id] = $temp_object;
}

Я предполагаю, что в ваших объектах есть что-то еще, и вы просто хотите удалить ID. Если вам нужен только заголовок, вам не нужно клонировать объект и просто установите $ new_array [$ object-> id] = $ object-> title .

19
ответ дан 3 December 2019 в 05:32
поделиться

Я бы подумал, что это сработает (у вас нет доступа к интерпретатору, поэтому может потребоваться настройка):

<?php

    class TestObject {
        public $id;
        public $title;

        public function __construct($id, $title) {

            $this->id = $id;
            $this->title = $title;

            return true;
        }
    }

    $var = array(new TestObject(11, 'Text 1'), 
                 new TestObject(12, 'Text 2'),
                 new TestObject(13, 'Text 3'));
    $new_var = array();

    foreach($var as $element) {
        $new_var[$element->id] = array('title' => $element->title);
    }

    print_r($new_var);

?>

Кстати, вы можете захотеть обновить свои соглашения об именах переменных на что-то более значимое. : -)

2
ответ дан 3 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: