2015-01-16 3 views
0

Привет, мне нужна помощь.Невозможно добавить элемент в качестве первого элемента массива - php array_unshift()

// categories for dropdown 
$this->data['dropdown_items'] = $this->category_model->get_key_value('id', 'category_name'); 

Эта строка моего кода возвращает массив как массив пар ключ => значение. Так что, если я свалка $ this-> данные [ «dropdown_items»] на экране я получаю это:

array(8) { 
    [1] => "cinemas" 
    [5] => "theaters" 
    [7] => "night life" 
    [6] => "restaurants" 
    [4] => "food" 
    [2] => "night clubs" 
    [3] => "opera" 
    [8] => "misc" 
} 
i.e [id] => "the category name" 

Что я хотел бы сделать, это предварять/добавить в качестве первого элемента этого массива нового элемента так Я пытался добавить его с функцией array_unshift():

$this->data['dropdown_items'] = array_unshift($this->data['dropdown_items'], "Please select a category"); 

Это то, что я прыгал, чтобы получить:

array(8) { 
     [0] => "Please select a category" 
     [1] => "cinemas" 
     [5] => "theaters" 
     [7] => "night life" 
     [6] => "restaurants" 
     [4] => "food" 
     [2] => "night clubs" 
     [3] => "opera" 
     [8] => "misc" 
    } 

, но вместо того, чтобы, когда я дамп $ этом-> данные [ ''] dropdown_items , Я получаю следующие

int(9) 

Любые идеи, что не так?

+2

'array_unshift' изменяет массив на месте, не нужно назначать то, что он возвращает. – georg

ответ

3

заменить этот

$this->data['dropdown_items'] = array_unshift($this->data['dropdown_items'], "Please select a category"); 

с

array_unshift($this->data['dropdown_items'], "Please select a category"); 

array_unshit возвращает количество элементов в массиве Вот почему вы получаете подсчитывать массив

+0

Спасибо, ребята! глупая ошибка меня :-)) – Lykos

+0

его нормально все получилось :) –

1

array_unshift получить эталонный массив в первом аргументе:

array_unshift($this->data['dropdown_items'], "Please select a category"); 

Если вы присвоите возвращаемое значение вашему массиву, оно будет заменено на количество элементов в вашем массиве (int).

Смежные вопросы