Удалить ключ массива из массива в CakePHP

Массив печати

array(
    'Order' => array(
        'id' => '1',
        'base_price' => '65',
        'min_price' => '95',            
    )
)

Можно ли удалить ключ ("Порядок") при получении данных? Если нет, то как я могу использовать array_shift или end в одной строке и предотвратить ошибку ниже?

Я получаю эту ошибку Only variables should be passed by reference когда я удаляю ключ из массива.

$orders = array_shift or end ($this->Order->read(null, $id));
debug($orders);

2 ответа

Решение

Вы хотите только идентификатор от этого, тогда следующий код поможет вам

 $arrOrderId=Set::extract("/Order/id",$data);

здесь $data - это ваш массив, из которого вы хотите удалить этот ключ "Order".

Вы получите следующий массив, когда вы делаете debug($arrOrderId);

[0]=>1

если вы хотите base_price, напишите следующий код

$arrOrderId=Set::extract("/Order/base_price",$data);

Ты можешь использовать Set функции для манипулирования массивами:

Set::extract($array, 'Order');

Будет выводить:

array(
    'id' => '1',
    'base_price' => '65',
    'min_price' => '95',            
)

Если вам нужно сделать это на каждом выходе, вы можете переопределить afterFind() метод по вашей модели.

Пожалуйста, смотрите документы:

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html

Другие вопросы по тегам